在shell中对csv进行排序并仅保留最高值

时间:2015-02-16 13:52:58

标签: bash shell sorting csv

我的csv看起来像这样:

user, score
bob, 10
alice, 12
peter, 20
bruce, 32
...

该文件非常大,我希望获得得分最高的前50位用户。

如何使用简单的shell命令执行此操作?

1 个答案:

答案 0 :(得分:4)

你可能想说:

sort -t',' -k2 -nr file

对于您的给定输入,它返回:

bruce, 32
peter, 20
alice, 12
bob, 10
user, score

这会使用sort这些参数:

  • -t','将字段分隔符设置为逗号。
  • -k2表示sort必须使用第二列。
  • -nr表示您希望以数字方式排序并在r正面排序(首先是最高位)。

要获得前50名,您可以输入head -50,这将获得上一个命令输出的前50行:

sort -t',' -k2 -nr file | head -50