檔案內的字串進行搜尋及取代很多時都會用到, 在 Linux 下有很多方法實現, 而 sed 進行字串的搜索並取代十分方便, 因為 sed 是內建的指令, 也支援 regex, 即使放在 Shell Script 也可以。以下列出一些 sed 取代字串的常用例子:
將檔案 filename.txt 內的 abc 取代為 “xyz”:
- $ sed -i ‘s/abc/xyz/g’ filename.txt
如果搜尋或取代的字串有包括空格,需要在空格前加上 “\”,例如:
- $ sed -i ‘s/abc/\ /g’ filename.txt
上面指令會將全部 abc 字串,用空格取代。
如果要對目錄下所有檔案做字串取代, 用 “*” 符號取代檔案名稱便可以:
- $ sed -i ‘s/abc/xyz/g’ *
只對目錄下所有 .txt 副檔案的檔案進行字串取代:
- $ sed -i ‘s/abc/xyz/g’ *.txt