Сравнение строк в awk - PullRequest
25 голосов
/ 26 мая 2011

Мне нужно сравнить две строки в алфавитном порядке, а не только тест на равенство. Я хочу знать, есть ли способ сделать сравнение строк в awk?

Ответы [ 3 ]

27 голосов
/ 26 мая 2011

Конечно, это может:

pax$ echo 'hello
goodbye' | gawk '{if ($0 == "hello") {print "HELLO"}}'
HELLO

Вы также можете выполнить неравенство (заказано), а также:

pax> printf 'aaa\naab\naac\naad\n' | gawk '{if ($1 < "aac"){print}}'
aaa
aab
6 голосов
/ 26 мая 2011

Вы можете выполнять сравнение строк в awk, используя стандартные логические операторы, в отличие от C, где вам придется использовать strcmp ().

echo "xxx yyy" > test.txt

cat test.txt | awk '$1!=$2 { print($1 $2); }'

1 голос
/ 15 ноября 2013

Вы можете проверить ответ в руководстве nawk

echo aaa bbb | awk '{ print ($1 >= $2) ? "true" : "false" }'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...