1

一般的な文字列比較では、"A" > "a" は false です。

ただし、この awk の実行から予期しない結果が得られます。

$ echo "A a"| awk '{if ($1 > $2) print "gt"; else print "leq"}'
gt

私は何が欠けていますか?

環境情報:

$ uname -r -s -v -M
AIX 1 6 IBM,9110-510

$ locale
LANG=en_AU.8859-15
LC_COLLATE="en_AU.8859-15"
LC_CTYPE="en_AU.8859-15"
LC_MONETARY="en_AU.8859-15"
LC_NUMERIC="en_AU.8859-15"
LC_TIME="en_AU.8859-15"
LC_MESSAGES="en_AU.8859-15"
LC_ALL=

診断:

$ echo "A a"| awk '{print NF}'
2

更新LC_ALL=POSIX を設定すると、正しい結果が得られます (JS웃 に感謝します)。これについてはさらに調査する必要があります。

4

1 に答える 1