2014-01-14 23 views

回答

2

Asuming,你想的sed的東西只有在包含XYZ的文件,你將不得不再次xargs的

find . -name "*" -type f | xargs grep -l "xyz" |xargs sed -i "s/'${line}'/'${rep}'/g" 
1

-i用於內聯文件編輯,您只需在stdin中將find命令的輸出管道輸入到sed,因此會顯示錯誤。

試試這個find command代替:

find . -name "*" -type f -exec sed -i '' "s/${line}/${rep}/g" '{}' \; 

PS:-name "*"也可以在這裏跳過。

1

當我們使用find命令,我們不能將輸出與連接管道(|)。所以你可以使用-exec和find命令來執行更多的命令。

相關問題