Linux学习 批量替换文件内容

Author Avatar
Hlooc 12月 23, 2017

格式: sed -i ‘s/原字段/新字段/g’ ‘grep 原字段 -rl 路径’ 文件名

  • -i 表示inplace edit 就地修改文件
  • -r 表示搜索子目录
  • -l 表示输出匹配的文件名
  • s表示替换,d表示删除

例子:

1
sed -i 's/old/new/g' test.txt

把当前目录下test.txt里的old都替换为new

sed其它用法:

删除行首空格

1
2
3
sed 's/^[ ]*//g' filename
sed 's/^ *//g' filename
sed 's/^[[:space:]]*//g' filename

行后和行前添加新行

行后:

1
sed 's/pattern/&\n/g' filename

行前:

1
sed 's/pattern/\n&/g' filename

&代表pattern

使用变量替换(使用双引号)

1
sed -e "s/$var1/$var2/g" filename

在第一行前插入文本

1
sed -i '1 i\插入字符串' filename

在最后一行插入

1
sed -i '$ a\插入字符串' filename

在匹配行前插入

1
sed -i '/pattern/ i "插入字符串"' filename

在匹配行后插入

1
sed -i '/pattern/ a "插入字符串"' filename

删除文本中空行和空格组成的行以及#号注释的行

1
grep -v ^# filename | sed /^[[:space:]]*$/d | sed /^$/d