sed命令和find命令的结合的使用


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"`

注意:

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM