linux下批量替換檔案內容的三種辦法

2021-06-18 11:36:17 字數 702 閱讀 9717

程式開發中,可能你會經常遇到批量替換檔案內容的情況,如果你使用的是linux,那麼恭喜你,你可以使用一下三種辦法進行查詢替換。

方法一:

find -name 'file.log' | xargs perl -pi -e 's|string1|string2|g'

這裡使用了perl語言,使用-e加上一段**,從而批量地將當前目錄及所有子目錄下的file.log檔案中的string1替換成了string2

string支援正規表示式

方法二:

sed -i "s/string1/string2/g" 'grep string1 -rl /path'

這裡使用了sed命令,將/path目錄及其子目錄下的所有檔案中的string1替換成了string2

這個命令,可能對返回多個檔案不太支援,不太推薦!

方法三:

grep -i "string1" -r /path | awk -f : '' | sort | uniq | xargs sed -i 's/string1/string2/g'

這裡使用了

shell命令,先查詢出檔案,再用awk分割(以:切分),再行替換! 

注意:grep可以使用正則,也可以使用\轉義一些特殊字元,比如「等

sed -i 's/\"localhost\"/\"10.2.2.2\"/g' /home/my.conf

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....