shell排序,输出非常奇怪

时间:2015-10-25 06:54:03

标签: shell sorting sh

我正在使用文本文件对(并删除重复)进行排序。它正在删除副本。

原始文件格式相当随机 - 这是一个小测试用例:

(q0 (q1 a))
(q1p (q1c c))
(q1q (q1 e))
(q1 (q2 s))

一旦排序,我就会感到愚蠢:

sort -u text > outfile

(q0 (q1 a))
(q1p (q1c c))
(q1 (q2 s))
(q1q (q1 e))

通过一些测试显然q1(或q2或其他)将落在q1p和q1q之间。为什么在这两个字符之间会出现空白?我更喜欢“q1”超越“q1”。有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

在我的默认语言环境中,我得到的结果与您相同:

$ sort -u text
(q0 (q1 a))
(q1p (q1c c))
(q1 (q2 s))
(q1q (q1 e))

要获得所需的结果,请使用C语言环境:

$ LC_ALL=C sort -u text
(q0 (q1 a))
(q1 (q2 s))
(q1p (q1c c))
(q1q (q1 e))