grep和sed替換檔案中的字串

2021-09-27 10:47:13 字數 522 閱讀 9870

筆記:注:如果不需要查詢子目錄,僅需要在當前目錄替換,可直接用sed命令:

sed -i s/"str1"/"str2"/g ./*.[ch]
將當前目錄下的所有.c、.**件中的str1字串替換為str2字串。

引數解釋:

sed:

-i 表示操作的是檔案,``括起來的grep命令,表示將grep命令的的結果作為操作檔案

s/"str1"/"str2"/表示查詢str1並替換為str2,後面跟g表示一行中有多個str1的時候,都替換,而不是僅替換第乙個

grep:

-r表示查詢當前目錄以及所有子目錄

-l表示僅列出符合條件的檔名,傳給sed命令做替換操作

--include="*.[ch]" 表示僅查詢.c、.**件

sed -i s/"str1"/"str2"/g `grep "str1" -rl --include="*.[ch]" ./`

sed直接替換檔案內容

sed i s zhangsan lisi g grep zhangsan rl modules 解釋一下 i 表示inplace edit,就地修改檔案 r 表示搜尋子目錄 l 表示輸出匹配的檔名 這個命令組合很強大,要注意備份檔案。1 sed y 1234567890 abcdefghij te...

sed直接替換檔案內容

sed i s zhangsan lisi g grep zhangsan rl modules 解釋一下 i 表示inplace edit,就地修改檔案 r 表示搜尋子目錄 l 表示輸出匹配的檔名 這個命令組合很強大,要注意備份檔案。1 sed y 1234567890 abcdefghij te...

sed直接替換檔案內容

sed i s zhangsan lisi g grep zhangsan rl modules 解釋一下 i 表示inplace edit,就地修改檔案 r 表示搜尋子目錄 l 表示輸出匹配的檔名 這個命令組合很強大,要注意備份檔案。1 sed y 1234567890 abcdefghij te...