选择性印刷

时间:2013-03-12 08:19:52

标签: awk

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

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

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

3 个答案:

答案 0 :(得分:3)

使用打印标记:

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

满足两个条件时,f设置为1。脚本末尾的唯一f在1时调用默认块{ print $0 }

答案 1 :(得分:1)

或尝试使用范围模式:

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

答案 2 :(得分:1)

对我来说,sed方法很好。如果分隔符为;

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