使用 awk 删除重复的空行

cur*_*924 4 awk

对于我的课堂问题之一,我有一个文件,我要在其中删除文件中重复的空白行。例如,我有一个如下所示的输入文件:

Sample Line 1



Sample line 2

Sample line 3
Run Code Online (Sandbox Code Playgroud)

然后输出会将所有多个空白行转换为单个空白行,因此输出文件将如下所示:

Sample Line 1

Sample line 2

Sample line 3
Run Code Online (Sandbox Code Playgroud)

我已经能够使用 sed 命令完成此操作,但问题仍然是我使用 awk 来获取此输出。我得到的最接近的是 with awk '!x[$0]++',但这只是删除了几乎所有空行。我觉得我缺少一些基本的东西。

谢谢你的帮助!

Ed *_*ton 5

$ awk 'NF{c=1} (c++)<3' file
Sample Line 1

Sample line 2

Sample line 3
Run Code Online (Sandbox Code Playgroud)

或者如果您不介意末尾有一个额外的空行:

$ awk -v RS= -v ORS='\n\n' '1' file
Sample Line 1

Sample line 2

Sample line 3
Run Code Online (Sandbox Code Playgroud)