首页  编辑  

sed 按开始标记和结束标记替换多行文本

Tags: /计算机文档/Linux & Unix/   Date Created:
要按开始和结束标记替换多行文本,按如下指令:
sed -i "/开始标记/,/结束标记/s/.*/新内容/" 文件名
sed -i "/开始标记/,/结束标记/d" 文件名
上面的命令是删除开始标记和结束标记间所有内容(含开始和结束标记)
如果开始标记和结束是一行的的话,可以使用 ^开始标记或结束标记$ 来表示完整的行匹配。

当然,你也可以使用 sed 脚本文件,例如 demo.sed ,内容类似下面:
  1. /^<div align="center">$/,/^<\/script><\/div>$/d
  1. /\s(function(i/,/pageview');$/d
  1. /^<script>$/,/^<\/script>$/d
然后使用 sed -f demo.sed -i.bak *.html 就可以处理所有的文件了,并且处理前,会自动备份为 .bak 文件。