Centos中查找並替換某個目錄下所有文件中的某個字符


1.批量查找某個目下文件的包含的內容
cd etc
grep -rn "查找的內容" ./
文件內容比較多的話,執行完命令需要等一會。

2.批量替換某個目下所有包含的文件的內容
還是以etc目錄為例

cd etc
sed -i "s/查找的內容/替換后的內容/g" `grep -rl "查找的內容" ./`

 

用sed命令可以批量替換多個文件中的字符串。

sed -i "s/原字符串/新字符串/g" `grep 原字符串 -rl 所在目錄`

例如:我要把mahuinan替換為huinanma,
執行命令:

sed -i "s/mahuinan/huinanma/g" 'grep mahuinan -rl /www'

這是目前linux最簡單的批量替換字符串命令了!
具體格式如下:

sed -i "s/oldString/newString/g" `grep oldString -rl /path`

實例代碼:

sed -i "s/大小多少/日月水火/g" `grep 大小多少 -rl /usr/aa`
sed -i "s/大小多少/日月水火/g" `grep 大小多少 -rl ./`

注意轉義:
實例:

sed -i "s/<script src=\"http:\/\/ajax.googleapis.com\/ajax\/libs\/jquery\/1.4\/query.min.js\" type=\"text\/javascript\"><\/script>/ /g" `grep '<script src="http:\/\/ajax.googleapis.com\/ajax\/libs\/jquery\/1.4\/jquery.min.js" type="text\/javascript"><\/script>' -rl test/`

sed -i "s/https:\/\/code.jquery.com\/jquery-1.12.4.min.js/<%=basePath%>\/js\/jquery\/jquery-1.12.4.min.js/g" `grep -rl "https:\/\/code.jquery.com\/jquery-1.12.4.min.js" ./`

————————————————
版權聲明:本文為CSDN博主「rhsy445566」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/rhsy445566/article/details/107594474

 

以下內容是自己的經驗:

1、sed -i "s/  /  /g"  `grep ......`這個命令格式在碰到替換復雜字符串時會報錯,-bash: syntax error near unexpected token `<',后來的解決辦法是用grep命令先找出需要修改的文件,用cut -d : -f 1命令截取所需文件名后,再使用sed -i s/  /  /g 這種不帶雙引號的命令更改,比較麻煩。

2、碰到管道符|,grep查找時可以用\|轉義,但在替換時最好用\x7c(16進制)代替\|


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM