我正在尝试通过删除重复的空行来压缩文本文档,使用 sed
。这就是我正在做的(无济于事):
sed -i -E 's/\n{3,}/\n/g' file.txt
据我了解,根据this manual,这是不正确的,但我不知道如何正确地做到这一点。谢谢。
最佳答案
我认为您想用一个空行替换多个空行的跨度,即使您的示例将多次运行 \n
替换为单个 \n
\n\n
。考虑到这一点,这里有两个解决方案:
sed '/^$/{ :l
N; s/^\n$//; t l
p; d; }' input
在 sed 的许多实现中,这些都可以在一行上,并将嵌入的换行符替换为 ;
。
awk 't || !/^$/; { t = !/^$/ }'
关于sed - 如何用SED删除多个空行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12373171/