印刷を選択して実行したい大きなファイルがあります。パターンマッチに基づいて行を見つけて、この行と、ファイルの最後までの後続のすべての行を印刷したいと思います。sedを使用しますが、一致は1列目と2列目のみに基づいています。
awk '{if($1=="XYZ" && $2=="GT") print $0}' in.file > out.file
上記を変更して、一致後のすべての行も印刷するにはどうすればよいですか。
印刷を選択して実行したい大きなファイルがあります。パターンマッチに基づいて行を見つけて、この行と、ファイルの最後までの後続のすべての行を印刷したいと思います。sedを使用しますが、一致は1列目と2列目のみに基づいています。
awk '{if($1=="XYZ" && $2=="GT") print $0}' in.file > out.file
上記を変更して、一致後のすべての行も印刷するにはどうすればよいですか。
印刷フラグを使用します。
awk '$1=="XYZ" && $2=="GT" { f = 1 } f' in.file > out.file
2 つのf
条件が満たされたときに 1 に設定されます。スクリプトの最後にあるローンは、1 の場合f
にデフォルト ブロックを呼び出します{ print $0 }
。
または、範囲パターンを使用してみてください:
awk '$1=="XYZ" && $2=="GT",end' file
私にとって、あなたのsed
アプローチは大丈夫でした。セパレーターが次の場合;
:
sed -n -e '/^XYZ;GT;/,$p' your_file