【轉】linux批次更新檔案內容+【原創】轉義時的問題

來源:互聯網
上載者:User

標籤:http   os   使用   ar   strong   檔案   div   sp   問題   

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

  方法一:  find -name ‘file.log‘ | xargs perl -pi -e ‘s|string1|string2|g‘  這裡使用了perl語言,使用-e加上一段代碼,從而批量地將目前的目錄及所有子目錄下的file.log檔案中的string1替換成了string2  string支援Regex   方法二:  sed -i "s/string1/string2/g" ‘grep string1 -rl /path‘  這裡使用了sed命令,將/path目錄及其子目錄下的所有檔案中的string1替換成了string2  這個命令,可能對返回多個檔案不太支援,不太推薦!   方法三:  grep -i "string1" -r /path | awk -F : ‘{print $1}‘ | sort | uniq | xargs sed -i ‘s/string1/string2/g‘  這裡使用了 shell命令,先尋找出檔案,再用awk分割(以:切分),再行替換!   注意:  grep可以使用正則,也可以使用\轉義一些特殊字元,比如“等  sed -i ‘s/\"localhost\"/\"10.2.2.2\"/g‘ /home/my.conf-------------------------------------以上是原帖,地址:http://www.51testing.com/html/93/316693-815340.html------------------------------------------------------- 上司發現了一個sql注入的漏洞,讓我批次更新所有同名檔案的這個地方,where("id=‘".$rec."‘")改成where(array("編號"=>$rec))因為我也是剛入門linux,所以馬上百度方法,首先使用了sed -i "s/string1/string2/g" ‘grep string1 -rl /path‘ sed -i "s/where(\"id=‘\".\$rec.\"‘\")/where(array(\"id\"=>\$rec))/g" `grep  -rl /home` 測試,執行,成功,心裡樂呵呵的在正式伺服器裡執行了,當時快下班了,就關了螢幕撤退了。第二天早上開啟螢幕一看,我擦,還沒執行完,一想確實,那麼多檔案螢幕顯示也費勁了,然後又百度,因為都是同名的檔案,所以這次用了 find -name ‘file.log‘ | xargs perl -pi -e ‘s|string1|string2|g‘這個方法,中間因為轉義費了好久的事, find /home/ -name ‘xxxx.php‘ | xargs perl -pi -e "s|where\(\"id=‘\".\$rec.\"‘\"\)|where\(array(\"id\"=>\$rec\)\)|g"  -> 錯誤一開始寫的是 \$rec 然後就是不成功,沒辦法只有百度轉義,發現很多博文都有些為了轉義\使用5678個\來轉義他自己,恍然大悟,原來\$轉義出來的還是$rec還是個變數, find /home/ -name ‘xxxx.php‘ | xargs perl -pi -e "s|where\(\"id=‘\".\\\$rec.\"‘\"\)|where\(array(\"id\"=>\\\$rec\)\)|g" -> 正確因為從雙引號裡先轉義了\\\$,從雙引號裡出來時就已經是\$了,然後命令執行時再轉義成了$rec,這下終於好了,測試成功,執行了半分鐘,全部替換完畢,

 

【轉】linux批次更新檔案內容+【原創】轉義時的問題

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.