2015-10-25 44 views
2

我正在使用文本文件排序(并删除dups)。它很好地去除了嘟嘟声。shell排序非常奇怪的订单输出

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

(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”。有任何想法吗?

谢谢!

+0

是'LANG'在设置你的环境,还是以'LC_'开头的变量?他们设定了什么? –

回答

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)) 
+0

太棒了!我找不到这个。非常感谢! –