我正在尝试使用sed
从文件中删除 html 代码块。要删除的块在文件中出现多次,并且跨越多行。另请注意,该块中包含不同的内容,但具有清晰的开始和结束描述。
我已经尝试了多种方法来使其正常工作,并且遇到了让懒惰工作sed
和跨行匹配的问题。
这是我正在尝试做的一个例子:
good stuff a
good stuff same line START
bad stuff 1.0
bad stuff 1.1
END
good stuff b
good stuff b
good stuff same line START bad stuff 2.0
bad stuff 2.0
END
good stuff c
变成:
good stuff a
good stuff same line
good stuff b
good stuff b
good stuff same line
good stuff c
以下是我迄今为止尝试过的一些方法。
sed -n '1h;1!H;${;g;s/START.*END//mg;p;}' < test > test2
跨界工作。
sed -n 's/START[^END]*END//g' < test > test2
仅否定 E 或 N 或 D。
sed -n 's/START.*?END//g' < test > test2
不会偷懒。
谢谢你。