在Linux系統中,文件內容的批量替換同Windows平台相比要麻煩一點。不過這里可以通過Shell命令或腳本的方式實現批量替換的功能。
筆者使用過兩個命令:perl和sed ,接下來會對其做出說明。
首先是perl命令,主要用於文件掃描,提取文件信息並打印
perl -pi -e 's/被替換的字符串/替換后的字符串/g' <替換內容所在文件>
perl 命令后選項居多,這里只會講解一些常用的選項
-i 編輯文件,就地修改
-e 讓Perl程序在命令行中運行
-r 搜索子目錄
-l 輸出匹配的文件名,常與find連用
-i.bak 將舊文件替換為bak文件
其次是sed命令的使用
sed -i "s/查找字段/替換字段/g" <文件> s代表替換指定字符 g表示行內全面替換
常用的選項有:
-i 直接修改
-e 在命令行上進行sed操作,這是默認選項
-f 此選項后加文件名,代表執行-f 后跟的文件中的sed命令
sed命令同時支持字符的新加,例如要在test.txt的第十行新加一行文本為 welcome!,可以這樣操作:
sed '9a\welcome!' test.txt # 這里的9a代表將文本添加到第九行之后,也就是第十行