sed -i s/"str1"/"str2"/g `grep "str1" -rl --include="*.[ch]" ./`
將當前目錄下的所有.c、.h檔案中的str1字串替換為str2字串。
引數解釋:
sed:
-i 表示操作的是檔案,``括起來的grep命令,表示將grep命令的的結果作為操作檔案
s/"str1"/"str2"/表示查詢str1並替換為str2,後面跟g表示一行中有多個str1的時候,都替換,而不是僅替換第一個
grep:
-r表示查詢當前目錄以及所有子目錄
-l表示僅列出符合條件的檔名,傳給sed命令做替換操作
--include="*.[ch]" 表示僅查詢.c、.h檔案
注:如果不需要查詢子目錄,僅需要在當前目錄替換,可直接用sed命令:
sed -i s/"str1"/"str2"/g ./*.[ch]
替換指定目錄的字串:
sed -i s/"src=\"http:\/\/s.cnzz.net\/cs.php?id=900016214\""/" "/g `grep "src=\"http:\/\/s.cnzz.net\/cs.php?id=900016214\"" -rl ./`