2つの列を持つtestというファイルがあります。 1つはID、もう1つはステータスです。
ファイルを繰り返して、ステータスに特定の値(「ACTIVE」など)を持つIDを印刷したいと思います。
cat test | while read line; do templine= $($line | cut -d ' ' -f 2);echo $templine; if [ $templine = 'ACCEPTED' ]; then echo "$templine"; fi done
上記のいくつかのバリエーションを試しましたが、うまくいかないようです。
どんな助けでも大変感謝します。
答え1
これは、フィールドでデータを操作する必要がある場合によく適していますawk
。
awk '$2 == "ACTIVE" { print $1 }' test
これは各行を読み取り、test
フィールドに分割し、$2
2番目の()があることを確認しACTIVE
、そうであれば最初のフィールドを印刷します。