awk或声明

时间:2013-04-05 17:16:10

标签: awk

在给定以下代码段的情况下,awk是否有OR语句

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

是否可以添加OR语句,以便$2==abc OR def -> print

3 个答案:

答案 0 :(得分:53)

是。您可以使用逻辑OR ||

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

答案 1 :(得分:39)

你不会在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"}
'

如果您想要匹配多个字符串,那么最后一个是最合适的。

答案 2 :(得分:3)

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