假设有一个文本文件:
10 A QAZ
5 A EDC
14 B RFV
3 A WSX
7 B TGB
我希望将第二列作为具有字母顺序的主列和第一列作为具有数字顺序的辅助列进行排序。以下是预期结果:
3 A WSX
5 A EDC
10 A QAZ
7 B TGB
14 B RFV
我尝试了sort -k 2,2 -k 1,1 a.txt -n
和sort -k 2,2 -k 1,1 a.txt
,但两者都给出了错误的结果。我该怎么解决这个问题?感谢。
答案 0 :(得分:9)
这应该有效:
sort -b -k2,2 -k1,1n
-b
是必不可少的,没有它,输出是错误的,因为sort
错误地确定了第二列的位置。有关详细信息,请参阅man sort
(或here)。
另外,请检查locale
。它们可以影响sort
的工作方式。
答案 1 :(得分:0)
这可能对您有用:
sort -k1.5,1.8 -k1.1,1.4n file