5

假设有一个文本文件:

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 -nsort -k 2,2 -k 1,1 a.txt但都给出了错误的结果。我应该怎么解决这个问题?谢谢。

4

2 回答 2

9

这应该有效:

sort -b -k2,2 -k1,1n

-b是必不可少的,没有它,输出是错误的,因为sort错误地确定了第二列的位置。有关详细信息,请参阅man sort (或此处)。

另外,检查您的locale. 他们可以影响sort工作方式。

于 2012-08-06T15:57:31.227 回答
0

这可能对您有用:

sort -k1.5,1.8 -k1.1,1.4n file
于 2012-08-06T17:24:54.210 回答