选择性打印
问题描述:
我有大型文件,我想要做一些选择打印。我想根据模式匹配找到一行,并打印此行,以及所有后续行直到文件末尾。我会使用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
答
,或者尝试使用范围模式:
awk '$1=="XYZ" && $2=="GT",end' file
答
对于我来说,你的sed
办法是罚款。如果分隔符是;
:
sed -n -e '/^XYZ;GT;/,$p' your_file
优秀,一个有用的工具知道! – user1308144 2013-03-12 08:47:04