sed -i "s/home/co_statistics/root/co_youjiao_statistics/g" grep co_statistics -rl .
- perl 可以执行以下命令: find . -name '*.c' -print0 | xargs -0 perl -pi -e 's/x_cnt/x_counter/g' xargs 把find命令的结果作为perl的参数。 find的参数-print0和xargs的参数-0是防止文件名中有空格或新行造成错误,可以man xargs获得帮助。 注意: 如果替换的字符包括 ()[]/"'!? 等等这样的特殊字符,你必须在字符前加上反斜杠\ 。 这种方法的好处是不用启动编辑器,比较迅速。缺点是容易出现不想要的替换,例如:把px_cnt替换成了px_counter。
- sed 仍以上面的例子讲解: find . -name "*.c" -print0 | xargs -0 sed -i 's/x_cnt/x_counter/g' 优缺点和perl方法相同。 以上方法的差异只在于使用工具的不同,相信肯定还有别的工具能办到这件事。 比如emacs,肯定也能做到这些,只是因为我不用emacs,所以不熟悉。 希望大家总结自己得心应手的方法。