linux下批量文件处理-字符串替换

sed进行处理多文件中的字符串替换,可以快速的修改函数名或者变量名.

sed

1
sed [-nefri] [动作]
  • -n :使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到终端上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。
  • -e :直接在命令列模式上进行 sed 的动作编辑;
  • -f :直接将 sed 的动作写在一个文件内, -f filename 则可以运行 filename 内的 sed 动作;
  • -r :sed 的动作支持的是延伸型正规表示法的语法。(默认是基础正规表示法语法)
  • -i :直接修改读取的文件内容,而不是输出到终端。

单文件替换

1
sed -i 's/sockhandle/sock/g' aa.c

多文件替换

1
grep "sockhandle" . -rl | xargs sed -i 's/sockhandle/sock/g'

-rl: 列出文件内容符合指定的范本样式的文件名称

-rn: 在显示符合范本样式的那一列之前,标示出该列的列数编号