我需要按字母顺序比较两个字符串,而不仅仅是相等测试。我想知道有没有办法在awk中进行字符串比较?
答案 0 :(得分:27)
当然可以:
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
答案 1 :(得分:6)
你可以使用标准布尔运算符在awk中进行字符串比较,这与你必须使用strcmp()的C不同。
echo "xxx yyy" > test.txt
cat test.txt | awk '$1!=$2 { print($1 $2); }'
答案 2 :(得分:1)
您可以在nawk manual
中查看答案echo aaa bbb | awk '{ print ($1 >= $2) ? "true" : "false" }'