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進制)代替\|