方法:1、利用perl指令,語法為「find -name'檔名'|xargs perl-pi-e 's|原內容|新內容|g'」;2、利用sed指令,語法為“sed-i "s/原內容/新內容/g" `grep 原內容-rl 目錄`”。
本教學操作環境:linux7.3系統、Dell G3電腦。
方法一
#使用perl ,指令如下:
find -name '要查找的文件名' | xargs perl -pi -e 's|被替换的字符串|替换后的字符串|g'
下面這個範例就是將目前目錄及所有子目錄下的所有pom.xml檔中的”http://repo1.maven.org/maven2“ 替換為”http://localhost:8081/nexus/content /groups/public“.
find -name 'pom.xml' | xargs perl -pi -e 's|http://repo1.maven.org/maven2|http://localhost:8081/nexus/content /groups/public|g'
這裡用到了Perl語言,
perl -pi -e 在Perl 命令中加上-e 選項,後面跟著一行程式碼,那它就會像運行一個普通的Perl 腳本那樣運行該程式碼.
從命令列中使用Perl 能夠幫助實現一些強大的、即時的轉換。認真研究正規表示式,並正確地使用,將會為您省去大量的手工編輯工作。
find -name 'pom.xml' | xargs perl -pi -e 's|http://repo1.maven.org/maven2|http://localhost:8081/nexus/content/groups/public|g'
方法二
使用sed指令如下:
sed -i "s/原字符串/新字符串/g" `grep 原字符串 -rl 所在目录`
Linux下批次取代多個檔案中的字串的簡單方法。用sed指令可以批次替換多個檔案中的字串。
例如:我要把mahuinan替換 為huinanma,執行指令:
sed -i "s/mahuinan/huinanma/g" 'grep mahuinan -rl /www'
這是目前linux最簡單的批次替換字串指令了!
具體格式如下:
sed -i "s/oldString/newString/g" `grep oldString -rl /path`
實例程式碼:
sed -i "s/大小多少/日月水火/g" `grep 大小多少 -rl /usr/aa` sed -i "s/大小多少/日月水火/g" `grep 大小多少 -rl ./`
相關推薦:《Linux影片教學》
以上是linux怎麼批次取代文件內容的詳細內容。更多資訊請關注PHP中文網其他相關文章!