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"`
注意: