我正在尝试对多个列进行排序。结果不符合预期。
这是我的数据(people.txt):
Simon Strange 62
Pete Brown 37
Mark Brown 46
Stefan Heinz 52
Tony Bedford 50
John Strange 51
Fred Bloggs 22
James Bedford 21
Emily Bedford 18
Ana Villamor 44
Alice Villamor 50
Francis Chepstow 56
以下内容可以正常工作:
bash-3.2$ sort -k2 -k3 <people.txt
Emily Bedford 18
James Bedford 21
Tony Bedford 50
Fred Bloggs 22
Pete Brown 37
Mark Brown 46
Francis Chepstow 56
Stefan Heinz 52
John Strange 51
Simon Strange 62
Ana Villamor 44
Alice Villamor 50
但是,以下内容无法按预期工作:
bash-3.2$ sort -k2 -k1 <people.txt
Emily Bedford 18
James Bedford 21
Tony Bedford 50
Fred Bloggs 22
Pete Brown 37
Mark Brown 46
Francis Chepstow 56
Stefan Heinz 52
John Strange 51
Simon Strange 62
Ana Villamor 44
Alice Villamor 50
我试图按姓氏排序,然后按名字排序,但是您会发现Villamors的顺序不正确。我希望按姓氏排序,然后在姓氏匹配时按名字排序。
我似乎不知道这应该如何工作。当然,我可以使用另一种方式(使用awk)来执行此操作,但是我想了解排序。
我在Mac OS X上使用标准的Bash shell。