假设有一个文本文件:
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
但两者都给出了错误的结果。我应该怎么解决这个问题?谢谢。
最佳答案
这应该有效:
sort -b -k2,2 -k1,1n
-b
是必不可少的,没有它,输出是错误的,因为 sort
错误地确定了第二列的位置。有关详细信息,请参阅 man sort
(或 here)。
此外,请检查您的区域设置
。它们可以影响 sort
的工作方式。
关于bash - 如何按字母顺序对主列进行排序,然后按数字顺序对辅助列进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11831452/