出力

出力

次の場合、終了コード1を返すにはawkが必要です。

  • grepからawkへの入力は提供されません。
  • 2番目のフィールドが空か存在しません。

grep が "SOME_PHRASE" を見つけた場合に動作しますが、対応するフレーズがない場合、戻りコード ($?) は 0 です。

grep -m1 -i '^SOME_PHRASE' test.txt | awk '{ if (length($val)==0 || $val=="" || length($2)==0) exit 1; else print $2; }'

test.txtの例

Test1 1234  
Phrase 214324

予想出力:

$ echo $?  
1

ベストアンサー1

実際には以下を組み合わせることができawkますgrep

awk 'BEGIN{rv=1}                      # Default return value is 1
     tolower($0) ~ /^some_phrase/{    # Case insensitive search 
         if($2 != ""){                # If $2 is not empty,
            print $2                  # print the value,
            rv=0                      # and set the return value
         } 
         exit                         # one match, do not process any more line 
     } 
     END{exit rv}
' test.txt

おすすめ記事