我正在使用sort根据字母顺序对文件的行进行排序,但我得到了一些奇怪的结果。我以为它是使用字符的十进制代码对它们进行排序,但它看起来不像。即“E”(解码代码 69)在“e”(解码代码 101)之后,“0”(代码 48)在“:”(代码 58)之后。
我试着用
if [[ "E" < "e" ]]; then echo "true"; else echo "false"; fi
和
if [[ "0" < ":" ]]; then echo "true"; else echo "false"; fi
检查它是否给了我正确的答案,但事实并非如此。我正在开发 ubuntu 12.04,我的环境编码和我试图排序的文件被定义为 en_us.UTF-8。
问题是我必须在java程序中解析这些文件,假设这些行是按字母顺序排序的。所以,当java根据字符的十进制代码比较字符串时,我的解析失败了,因为文件中的行没有按照相同的顺序排序。
有人可以通过强制排序使用十进制代码来帮助我解决这个问题,或者通过使用另一种方式根据此顺序对文件进行排序。
非常感谢您的帮助。