如何使用sed将<h1> ... </h1>替换为<h2> ... </h2>

时间:2013-01-16 12:24:30

标签: regex sed

我实际上可以使用以下方式执行前导<h1>

sed s/\<h1\>/\<h2\>/ myblog.html 

但如何让它也跟踪</h1>

所以我想从:

<h1> some header </h1> to <h2> some header </h2>

3 个答案:

答案 0 :(得分:2)

定义sed替换命令时不需要使用斜杠,它可以是另一个符号:

sed -e 's/<h1>/<h2>/g' -e 's_</h1>_</h2>_g'

答案 1 :(得分:1)

使用捕获组捕获可选的/并通过反向引用替换捕获组:

sed -r 's/<(\/?)h1>/<\1h2>/' myblog.html

-r选项是激活扩展正则表达式。

答案 2 :(得分:0)

有时候我发现HTML标签最简单的解决方案是完全忽略结束标签中的斜杠,并将打开和关闭与单个模式匹配,如下所示:

sed 's/h1>/h2>/' myblog.html