Shell 对目录中的所有文件进行文本替换,我们经常需要将目录下所有文件中的特定文本替换成其他内容。例如在网站的源文件目录中替换一个URI。
实战演练
我们可以首先使用find
找到需要进行文本替换的文件,然后由sed
负责完成实际的替换操作。假设我们希望将所有.cpp文件中的Copyright
替换成Copyleft
:
find . -name *.cpp -print0 |
xargs -I{} -0 sed -i 's/Copyright/Copyleft/g' {}
工作原理
我们使用find
命令在当前目录(.)
下查找所有的.cpp文件。它使用-print0
打印出以