Linux批量替換檔案內容

2022-04-11 08:52:14 字數 627 閱讀 4229

問題描述:現在需要將rack1目錄下*.send檔案中的"-ip="替換成「-localip=10.0.0.1/n-ip=」

剛才那個批量文字內容替換,只能替換記憶體中的內容,並不會替換文字中的內容,要替換檔案中的內容需要乙個乙個檔案去重定向,比較麻煩,本人比較懶,於是找到了一種更好的辦法

找到批量替換檔案內容的好方法,命令結構如下:

find -name '要查詢的檔名' | xargs perl -pi -e 's|被替換的字串|替換後的字串|g'

下面這個例子就是將當前目錄及所有子目錄下的所有*.send檔案中的"-ip="替換為「-localip=10.0.0.1/n-ip=」

find -name "*.send"| xargs perl -pi -e 's|-ip=|-localip=10.0.0.1/n-ip=|g'

這裡用到了perl語言,

perl -pi -e

在perl 命令中加上-e 選項,後跟一行**,那它就會像執行乙個普通的perl 指令碼那樣執行該**.

從命令列中使用perl 能夠幫助實現一些強大的、實時的轉換。認真研究正規表示式,並正確地使用,將會為您省去大量的手工編輯工作

注意:檔名一定要用雙引號,雙引號和單引好的區別和linux下規則是一樣的

Linux 下批量替換檔案內容

通常在網路上可以找到的方法是 sed i s oldstring newstring g grep oldstring rl path 但是其中有太多的限制,比如 無法篩選哪些檔案是你不想要的,你只能替換所有grep出來的檔案,我在專案裡遇到的一種情況是,這樣的替換會同時影響到.svn檔案,導致up...

linux下批量替換檔案內容

1 網路上現成的資料 格式 sed i s 查詢字段 替換字段 g grep 查詢字段 rl 路徑 linux sed 批量替換多個檔案中的字串 sed i s oldstring newstring g grep oldstring rl yourdir 例如 替換 home下所有檔案中的www....

linux下批量替換檔案內容

1 網路上現成的資料 格式 sed i s 查詢字段 替換字段 g grep 查詢字段 rl 路徑 linux sed 批量替換多個檔案中的字串 sed i s oldstring newstring g grep oldstring rl yourdir 例如 替換 home下所有檔案中的www....