awk にはOR
ステートメントがありますか。つまり、次のスニペットが与えられます:
awk '{if ($2=="abc") print "blah"}'
OR
if のようにステートメントを追加することは可能$2==abc OR def -> print
ですか?
awk にはOR
ステートメントがありますか。つまり、次のスニペットが与えられます:
awk '{if ($2=="abc") print "blah"}'
OR
if のようにステートメントを追加することは可能$2==abc OR def -> print
ですか?
はい。||
使用できる論理 OR があります。
awk '{if ($2=="abc" || $2=="def") print "blah" }'
次のコードは awk では記述しません。
awk '{if ($2=="abc") print "blah"}'
代わりに次のように記述します。
awk '$2=="abc" {print "blah"}'
「または」を追加するには、最終的に何をしようとしているかに応じて、次のいずれかになります。
awk '$2~/^(abc|def)$/ {print "blah"}'
awk '$2=="abc" || $2=="def" {print "blah"}'
awk '
BEGIN{ split("abc def",tmp); for (i in tmp) targets[tmp[i]] }
$2 in targets {print "blah"}
'
一致させたい文字列が複数ある場合は、最後の文字列が最も適切です。
awk '{if ($2=="abc" || $2=="def") print "blah"}'