我正在尝试按最后一列对名为“Team_James”的文件进行数字排序,然后我想将输出保存为名为“file3”的新文件。
我尝试了该命令sort Team_James | > s3
,但我不知道该怎么做,我什至不知道-k
是什么!我一直在互联网上到处寻找。
我究竟做错了什么?
这是我的命令的输出cat Team_James
Pam Murray 4 657-4324 18
Jim Brown 8 467-8743 22
Jim Roberts 17 728-8295 9
Joyce Murray 7 235-1432 13
答案1
查看该表,在第 1 列中,名字和姓氏之间有空格。这意味着,sort
将考虑名字和姓氏两个单独的列。结果,输入表的最后一列是#5。下面的命令假设第 1 列中提供的所有名称都是名字/姓氏,并且没有中间名。
cat Team_James | sort -s -n -k 5.1 > file3
Jim Roberts 17 728-8295 9
Joyce Murray 7 235-1432 13
Pam Murray 4 657-4324 18
Jim Brown 8 467-8743 22
-n, --numeric-sort compare according to string numerical value
-s, --stable stabilize sort by disabling last-resort comparison
-k, --key=POS1[,POS2]
start a key at POS1 (origin 1), end it at POS2 (default end of
line). See POS syntax above.