問題描述:現在需要將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....