Linux 文本处理批量查找与替换

# 搜索含有特定字符串在某个目录并打印出文件名
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

```