# 搜索含有特定字符串在某个目录并打印出文件名
grep -rl "www.baidu.com" /data
* -r, --recursive like --directories=recurse
* -l, --files-with-matches print only names of FILEs containing matches
# 批量查找与替换
sed -i "s/原字符串/新字符串/g" `grep 原字符串 -rl 所在目录`
sed -i "s/原字符串/新字符串/g" `grep 原字符串 -rl 所在目录`
# 统计数量
grep -rl "www.googletagmanager.com" ./en/| xargs ls -al|wc -l
# shell匹配多行的html 标签
sed -z -i 's/<div class="header_t">.*<div class="header_m">/<div class="header_m">/g' `grep -Pzlr '<div class="header_t">[dD]*<div class="header_m">' main.html ./dir`
# 注意
sed 正则表达式不支持贪婪模式,匹配标签时候注意匹配 html 开始标识符的开头以此来界定.
```
sed -z -i 's/<div class="sns_link_img">.*<div class="member_box">/<div class="sns_link_img"><img src="111" class="kakao_qr"><img src="222" class="line_qr"></div><div class="member_box">/g' main.html
```