sed - 如何用SED删除多个空行?

标签 sed text-processing

我正在尝试通过删除重复的空行来压缩文本文档,使用 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/

相关文章:

r - R中的文本流处理

bash - 在 Bash 中按字母顺序排序

regex - 从 sed 加入两个正则表达式

java - 计算字符串数组中每个单词最后一次出现后的单词数

perl - BASH:将平面文件中的数据导入模板

algorithm - 优化列表文字增删改查

linux - 如何替换linux中文件中包含 "/"的字符串?

linux - Bash 脚本中仅 Grep 变量名

linux - 使用 bash 命令删除下一行、空格

python - 将文本特征名称链接到其 tfidf 值