【问题标题】:How do I remove blank lines from a text file and join the lines separated by the blank line?如何从文本文件中删除空行并加入由空行分隔的行?
【发布时间】:2016-07-08 15:01:22
【问题描述】:

我有一个文本文件,其中一些条目如下所示:

"Hello, my name is

George. Its very nice to meet you"

我想运行一个 SED 或 AWK 命令,得到以下结果:

"Hello, my name is George. Its very nice to meet you"

我知道我可以通过运行 SED 删除空行:

sed '/^\s*$/d' 

该命令只删除空行,但不加入字符串,如上所示。

谢谢

【问题讨论】:

标签: bash awk sed


【解决方案1】:

我会使用awk:

awk 'BEGIN{RS="\n\n";ORS=" "}1' file

该命令使用两个换行符(一个空行)作为输入分隔符,一个空格作为输出记录分隔符

1 是一个 awk 习语。它将始终评估为 true,这使得 awk 打印每条记录。


顺便说一句,如果您的空白行可能包含空格,请将命令更改为:

awk 'BEGIN{RS="\n[[:space:]]*\n";ORS=" "}1' file

【讨论】:

  • 非常感谢您的回复。它确实适用于我创建的测试文件,但不适用于我需要修复的文件。也许在所谓的空行中有一些垃圾字符?我没有看到。
  • 您正在处理的文件可能来自 Windows?
【解决方案2】:

转到菜单->编辑->行操作-在记事本++中选择“删除空行”

一键删除所有多余的行:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-05
    • 1970-01-01
    • 2011-12-29
    • 2023-03-15
    • 2018-02-08
    • 2011-09-22
    • 1970-01-01
    • 2012-12-07
    相关资源
    最近更新 更多