程式開發中,可能你會經常遇到批量替換檔案內容的情況,如果你使用的是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....