find+xargs+sed批量替换
写代码时经常遇到要把 .c 和 .h的文件中的某些内容全部替换的情况,用sourceinsight 进行全局的查找是一个方法,但是sourceinsight只能替换一个文件中的字符串,不能同时替换多个文件中的同一个字符,在linux下 使用find,结合sed,xargs 可以实现这个功能。
把当前目录下的所有.c 和 .h 文件中的 "waf"字符 全部 替换成 “tamper”
find . -name "*.[ch]" |xargs sed -i 's/waf/tamper/g'
把、/opt/test/ 目录下所有含有"linux"字符的文件全部替换成windows
命令如下
find /opt/test/ -type f | awk -F":" '{print $1}' |xargs sed -i's/linux/windows/g'