我有一个文件,其中包含由制表符分隔的两列。
A10 A10_motorway_(Switzerland)
A-10 A-10_N/AW
A10 A10_Networks
A-10 A-10_road
A10 A10_road
A10_road_(California) A10_road_(Canada)
A10_road_(Croatia) A10_road_(disambiguation)
A10_road_(England) A10_road_(Great_Britain)
A10_road_(Isle_of_Man) A10_road_(Isle_of_Man)
A10_road_(Latvia) A10_road_(Malaysia)
A10_road_(United_Kingdom) A10_road_(United_States_of_America)
A10_road_(USA) A10_road_(Zimbabwe)
A-10 A-10_Shrike
A10 A10_(Switzerland)
我想按字母顺序按第一列对该文件进行排序。所以相同的标题应该连续出现。
所以我这样做了:
sort -t $'\t' -k1 -d filename
但结果实际上是上面的快照。如您所见,条目“A-10”没有排序,也不是连续发生的。我并不真正关心字母顺序本身,但我希望相同的标题连续出现。谁能解释为什么排序不允许我这样做以及如何解决这个问题?谢谢!
答案1
请尝试:
LC_COLLATE=C sort myfile
过去遇到过类似的行为,同事建议的这个对我有帮助
答案2
我凭经验发现-k1,1
将“ A10
”放在一起,将“ A-10
”放在一起,但我不明白为什么。这是sort
来自 GNU coreutils 8.4 的。