2

印刷を選択して実行したい大きなファイルがあります。パターンマッチに基づいて行を見つけて、この行と、ファイルの最後までの後続のすべての行を印刷したいと思います。sedを使用しますが、一致は1列目と2列目のみに基づいています。

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

2 つのf条件が満たされたときに 1 に設定されます。スクリプトの最後にあるローンは、1 の場合fにデフォルト ブロックを呼び出します{ print $0 }

于 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 に答える