2010-08-04 118 views

回答

6

awk中可以通過記錄分隔設置爲空字符串處理這些多記錄:

BEGIN { RS = ""; ORS = "\n\n" } 
$2 == "some string" { next } # skip this record 
{ print } # print (non-skipped) record 

您可以保存在文件中這個(如remove.awk),並與awk -f remove.awk data.txt > newdata.txt

執行它這是假設你的數據的格式如下:

header 
data 
.... 

header 
data 
... 

如果記錄之間沒有空行,則需要手動拆分記錄(第是每條記錄有4行):

{ a[++i] = $0 } 
i == 2 && a[i] == "some string" { skip = 1 } 
i == 4 && ! skip { for (i = 1; i <= 4; i++) print a[i] } 
i == 4 { skip = 0; i = 0 } 
0

不知道你想要的輸出和樣本輸入不足。

awk 'BEGIN{RS=""}!/data1/' file 
相關問題