档案内的字串进行搜寻及取代很多时都会用到, 在 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