Bash 我有一个文本文件,我需要删除第一个空行,然后删除第二个空行之后的所有文本

Bash 我有一个文本文件,我需要删除第一个空行,然后删除第二个空行之后的所有文本,bash,awk,sed,Bash,Awk,Sed,我使用的是bash,我有一个包含3部分文本的文件。第一部分,然后是一个空行,然后是第二部分,然后是另一个空行,然后是文件3部分的文本。我需要把它输出到一个只有前2个部分的新文件,而没有空白行。我一直在玩sed和awk,但还不太清楚。最简单的是使用awk: awk -v RS= 'NR <= 2' filename 这将在第二条记录之后停止处理文件,并打印所有记录,直到完成为止 附录:强制性sed解决方案(不建议使用,写书是为了好玩): awk -v RS= '1; NR == 2 { e

我使用的是bash,我有一个包含3部分文本的文件。第一部分,然后是一个空行,然后是第二部分,然后是另一个空行,然后是文件3部分的文本。我需要把它输出到一个只有前2个部分的新文件,而没有空白行。我一直在玩sed和awk,但还不太清楚。

最简单的是使用awk:

awk -v RS= 'NR <= 2' filename
这将在第二条记录之后停止处理文件,并打印所有记录,直到完成为止

附录:强制性sed解决方案(不建议使用,写书是为了好玩):

awk -v RS= '1; NR == 2 { exit }' filename
sed -n '/^$/ { x; /./q; H; d; }; p' filename