Мне нужно сравнить две строки в алфавитном порядке, а не только тест на равенство. Я хочу знать, есть ли способ сделать сравнение строк в awk?
Конечно, это может:
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
Вы можете выполнять сравнение строк в awk, используя стандартные логические операторы, в отличие от C, где вам придется использовать strcmp ().
echo "xxx yyy" > test.txt
cat test.txt | awk '$1!=$2 { print($1 $2); }'
Вы можете проверить ответ в руководстве nawk
echo aaa bbb | awk '{ print ($1 >= $2) ? "true" : "false" }'