2013-03-12 138 views
2

我有大型文件,我想要做一些選擇打印。我想根據模式匹配找到一行,並打印此行,以及所有後續行直到文件末尾。我會使用sed,但是,匹配僅基於第一列和第二列。選擇性打印

awk '{if($1=="XYZ" && $2=="GT") print $0}' in.file > out.file 

如何更改上面的內容以打印匹配後的所有行。

回答

3

使用印刷標誌:

awk '$1=="XYZ" && $2=="GT" { f = 1 } f' in.file > out.file 

f設置爲1時,在滿足兩個條件。在腳本結束時的孤獨f調用默認塊{ print $0 }時1

+0

優秀,一個有用的工具知道! – user1308144 2013-03-12 08:47:04

1

,或者嘗試使用範圍模式:

awk '$1=="XYZ" && $2=="GT",end' file 
1

對於我來說,你的sed辦法是罰款。如果分隔符是;

sed -n -e '/^XYZ;GT;/,$p' your_file