Shell實現文件內容批量替換的方法


在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代表將文本添加到第九行之后,也就是第十行

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM