С Perl вы можете проверить, если массив содержит значениеПроверьте массив содержит значение
$ perl -e '@foo=(444,555,666); print 555 ~~ @foo ? "T" : "F"'
T
Однако с AWK, эта подобная команда проверяет индексы массива, а не значений
$ awk 'BEGIN {split("444 555 666", foo); print 555 in foo ? "T" : "F"}'
F
Как могу ли я проверить, содержит ли массив определенное значение с awk?
Я считаю, что единственным вариантом является цикл. –
Как говорит Этан, вам нужна петля. Вы можете получить несколько гибкий результат, создав новый массив (хеш) со значениями в виде ключей, например: 'awk 'BEGIN {split (" 444 555 666 ", foo); for (i = 1; i <= length (foo); i ++) bar [foo [i]]; распечатать 555 в баре? "T": "F"} '' – Thor
@Thor - Не можете ли вы просто использовать' for (i in foo) bar [foo [i]] 'вместо этого? – n0741337