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