要按开始和结束标记替换多行文本,按如下指令:
sed -i "/开始标记/,/结束标记/s/.*/新内容/" 文件名
sed -i "/开始标记/,/结束标记/d" 文件名
上面的命令是删除开始标记和结束标记间所有内容(含开始和结束标记)
如果开始标记和结束是一行的的话,可以使用 ^开始标记或结束标记$ 来表示完整的行匹配。
当然,你也可以使用 sed 脚本文件,例如 demo.sed ,内容类似下面:
- /^<div align="center">$/,/^<\/script><\/div>$/d
- /\s(function(i/,/pageview');$/d
- /^<script>$/,/^<\/script>$/d
然后使用 sed -f demo.sed -i.bak *.html 就可以处理所有的文件了,并且处理前,会自动备份为 .bak 文件。