2

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

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

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

4

3 回答 3

3

使用打印标志:

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

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

于 2013-03-12T08:23:49.963 回答
1

或者尝试使用范围模式:

awk '$1=="XYZ" && $2=="GT",end' file
于 2013-03-12T09:14:22.093 回答
1

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

sed -n -e '/^XYZ;GT;/,$p' your_file
于 2013-03-12T10:46:02.023 回答