Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

awkにおいて、演算子"~"は特定の文字列を含んでいる場合"1"を返す

一致すると、"1"を返します。

$ printf "foo bar buzz" | awk '{print $0 ~ /ba/}'
1

否定版もあります。

$ printf "foo bar buzz" | awk '{print $0 !~ /bar/}'
0

条件式に組み込むこともできるので、知ってると少し短く書けるかも

$ printf "foo bar buzz" | awk '{print ($0 ~ /ba/)? "yes" : "no"}'
yes

$ printf "foo bar buzz" | awk '{print ($0 ~ /go/)? "yes" : "no"}'
no