对多列进行排序,第二列按数字顺序排序

LLL*_*LLL 2 sort

文件:名称列表.txt

Emily 0
Emily 1
Emily 5
Joe 0
Joe 10
Joe 5
Joe 6
Run Code Online (Sandbox Code Playgroud)

这是我运行的命令:

cat nameslist.txt | sort -k1 -k2
Run Code Online (Sandbox Code Playgroud)

结果:

Emily 0
Emily 1
Emily 5
Joe 0
Joe 10
Joe 5
Joe 6
Run Code Online (Sandbox Code Playgroud)

看起来它是按第一个数字排序的,但是如何让第二列按数字排序?我想要的结果是:

Emily 0
Emily 1
Emily 5
Joe 0
Joe 5
Joe 6
Joe 10
Run Code Online (Sandbox Code Playgroud)

JRF*_*son 6

使用该-n选项按数字排序:

sort -k1,1 -k2n nameslist.txt
Run Code Online (Sandbox Code Playgroud)

没有必要使用cat读取输入文件。 sort将无需其他过程即可做到这一点。

-k1,1符号将第一个排序键的开始和停止限制设置为第一个字段。