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