对于我上课的问题之一,我有一个文件,该文件用于删除文件中重复的空白行。因此,例如,我有一个看起来像这样的输入文件:
Sample Line 1
Sample line 2
Sample line 3
然后输出将把所有多个空行变成单数行,因此输出文件将如下所示:
Sample Line 1
Sample line 2
Sample line 3
我已经能够使用sed命令完成此操作,但问题是我坚持使用awk来获取此输出。我得到的最接近的是awk '!x[$0]++'
,但这几乎删除了每个空白行。我觉得我缺少一些基本知识。
感谢您的帮助!
您能不能尝试以下操作。
awk '
/^ +$/{
count++
}
count>1{
next
}
!/^ +$/{
count=""
}
1' Input_file
$ awk 'NF{c=0} (++c)<3' file
Sample Line 1
Sample line 2
Sample line 3
或者如果您不介意结尾处有多余的空行:
$ awk -v RS= -v ORS='\n\n' '1' file
Sample Line 1
Sample line 2
Sample line 3