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