check_this
パイプで接続されたファイルに対して YES または NO を印刷する外部コマンドがあります。
cat myfile | check_this
YES
NO
YES
YES
...
これで、結果がYESのmyfileのすべての行を取得したいと思います。これを行う方法はありますか?現在は一時ファイルを使用し、別のファイルに保存して貼り付け+ grepを使用しますが、これは面倒で堅牢ではありません。
ベストアンサー1
私は以下を使用しますawk
:
<myfile check_this | awk '
!check_processed {if ($1 == "YES") yes[FNR]; next}
FNR in yes' - check_processed=1 myfile
awk
ハッシュテーブルの単語で始まる出力の行番号を記録し、check_this
そのハッシュテーブルに番号がある行を印刷します。YES
yes
myfile
yes