【发布时间】:2011-11-24 00:51:42
【问题描述】:
有很多关于将多换行替换为一个换行的问题,但没有人为我工作。
我有一个文件:
first line
second line MARKER
third line MARKER
other lines
many other lines
我需要将MARKER 之后的两个换行符(如果存在)替换为一个换行符。结果文件应该是:
first line
second line MARKER
third line MARKER
other lines
many other lines
我试过sed ':a;N;$!ba;s/MARKER\n\n/MARKER\n/g' 失败。sed 对于单行替换很有用,但换行有问题。找不到\n\n
我试过 perl -i -p -e 's/MARKER\n\n/MARKER\n/g' 失败。
这个解决方案看起来更接近,但似乎 regexp 没有对\n\n 做出反应。
是否可以仅在MARKER之后替换\n\n而不替换文件中的其他\n\n?
我对单行解决方案感兴趣,而不是脚本。
【问题讨论】:
标签: perl shell replace sed newline