web-dev-qa-db-ja.com

awkでの文字列比較

等価テストだけでなく、2つの文字列をアルファベット順に比較する必要があります。私はawkで文字列比較を行う方法がありますか?

25
Dagang

できること:

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
27
paxdiablo

Strcmp()を使用する必要があるCとは異なり、標準のブール演算子を使用してawkで文字列比較を行うことができます。

_echo "xxx yyy" > test.txt_

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

6

答えは nawkマニュアル で確認できます

echo aaa bbb | awk '{ print ($1 >= $2) ? "true" : "false" }'
1
Ian Chang