0
我使用bash,并且我有一个位于文本3部分的文件。第一部分,然后是空白行,然后是第二部分,然后是另一个空行,然后是文件的文件3部分。我需要输出到一个新的文件,其中只包含前两个部分没有空行之间。我一直在玩sed和awk,但无法弄清楚。我有一个文本文件,我需要删除第一个空白行,然后删除第二个空白行之后的所有文本
我使用bash,并且我有一个位于文本3部分的文件。第一部分,然后是空白行,然后是第二部分,然后是另一个空行,然后是文件的文件3部分。我需要输出到一个新的文件,其中只包含前两个部分没有空行之间。我一直在玩sed和awk,但无法弄清楚。我有一个文本文件,我需要删除第一个空白行,然后删除第二个空白行之后的所有文本
最简单的使用awk:
awk -v RS= 'NR <= 2' filename
有了一个空的记录分隔RS
,awk的分裂在空行的文件为记录。选择NR <= 2
时,只打印前两个(由默认输出记录分隔符(换行符分隔))。
如果该文件是非常大的,它可能是审慎的修改这
awk -v RS= '1; NR == 2 { exit }' filename
这将停止第二个记录并打印所有在那之前后处理文件。
附录:强制性疯狂sed的解决方案(不推荐使用,书面的乐趣):
sed -n '/^$/ { x; /./q; H; d; }; p' filename
Whooop - 工程完全按照我需要的!谢谢! – keg 2015-04-05 21:58:57