我有大型文件,我想做一些选择打印。我想找到一个基于模式匹配的行并打印此行,以及所有后续行直到文件末尾。我会使用sed,但是,匹配仅基于第一列和第二列。
awk '{if($1=="XYZ" && $2=="GT") print $0}' in.file > out.file
如何更改上述内容以打印匹配后的所有行。
答案 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