2013-04-05 16 views
27

は、awkは次のスニペット与えOR声明すなわちを持っていますか?awkのOR声明

答えて

36

はい。そこ論理だか、使用することができ||

awk '{if ($2=="abc" || $2=="def") print "blah" }' 
+0

duh、ありがとう:) – Numpty

2
awk '{if ($2=="abc" || $2=="def") print "blah"}' 
31

あなたは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"} 
' 

最後に一致する文字列が複数ある場合は、最後の文字列が最も適しています。