Czy awk mają OR
oświadczenie tj daną następujący fragment:awk LUB oświadczenie
awk '{if ($2=="abc") print "blah"}'
Czy jest możliwe aby dodać oświadczenie OR
tak, że jeśli $2==abc OR def -> print
?
Czy awk mają OR
oświadczenie tj daną następujący fragment:awk LUB oświadczenie
awk '{if ($2=="abc") print "blah"}'
Czy jest możliwe aby dodać oświadczenie OR
tak, że jeśli $2==abc OR def -> print
?
Tak. Jest logiczne OR ||
które można użyć:
awk '{if ($2=="abc" || $2=="def") print "blah" }'
awk '{if ($2=="abc" || $2=="def") print "blah"}'
Nie byłoby napisać ten kod w awk:
awk '{if ($2=="abc") print "blah"}'
byś napisać to zamiast:
awk '$2=="abc" {print "blah"}'
i do dodanie "lub" będzie jednym z nich w zależności od tego, co ostatecznie próbujesz zrobić:
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"}
'
Ten ostatni byłby najbardziej odpowiedni, jeśli masz kilka ciągów, które chcesz dopasować.
duh, dziękuję :) – Numpty