选择性打印

问题描述:

我有大型文件,我想要做一些选择打印。我想根据模式匹配找到一行,并打印此行,以及所有后续行直到文件末尾。我会使用sed,但是,匹配仅基于第一列和第二列。选择性打印

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

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

使用印刷标志:

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

,或者尝试使用范围模式:

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

对于我来说,你的sed办法是罚款。如果分隔符是;

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