linux中查找当前目录及其子目录下的所有test.txt文件,并将文件中的oldboy替换成oldgirl
首先查找出当前目录及其子目录下的所有的test.txt文件
[root@zxl zxl]# find ./ -type f -name \"test.txt\"
./test.txt
./a/test.txt
./a/ddd/fff/test.txt
./c/test.txt
[root@zxl zxl]#
查看文件中的内容
[root@zxl zxl]# find ./ -type f -name \"test.txt\"|xargs cat
oldboy
oldboy
oldboy oldboy
oldboy
oldboy
oldboy
[root@zxl zxl]#
将查找结果进行替换并查看替换后的结果
[root@zxl zxl]# find ./ -type f -name \"test.txt\"|xargs sed -i \'s#oldboy#oldgirl#g\'
[root@zxl zxl]# find ./ -type f -name \"test.txt\"|xargs cat
oldgirl
oldgirl
oldgirl oldgirl
oldgirl
oldgirl
oldgirl
[root@zxl zxl]#
上述替换过程等价于
[root@zxl zxl]# find ./ -type f -name \"test.txt\" -exec sed -i \'s#oldboy#oldgirl#g\' {} \\;
同时等价于
[root@zxl zxl]# sed -i \'s#oldboy#oldgirl#g\' `find /home/zxl/ -type f -name \"test.txt\"`
注意: