我有一个HTML文件,其中一些行以<br>
开头。如果连续有两个,我想删除第一个。看起来这应该有用......
sed '/^<br>/{N;/^<br>/ s/^.*\n//}'
......但事实并非如此。
修改
输入:
<br>Here's a line I don't want.
<br>Here's a line I do want.
<a href="http://google.com">Google</a>
输出:
<br>Here's a line I do want.
<a href="http://google.com">Google</a>
编辑2:
我把问题缩小到一半时间工作的命令。如果第1行和第2行以<br>
开头,则第1行被正确删除,但脚本会移至第3行和第4行,而不先检查第2行和第3行。
答案 0 :(得分:1)
试试这个:
sed '/^<br>/N;{/\n<br>/D;}' file
找到^<br>
后,N
会在模式空间中添加下一行。如果下一行以<br>
开头,则D
会删除模式空间的第一部分(即以br
开头的第一行)。