在 shell 中对 csv 进行排序并仅保留最高值
Sort a csv in shell and keep only the top values
我有一个这样的 csv:
user, score
bob, 10
alice, 12
peter, 20
bruce, 32
...
文件比较大,想获取得分最高的前50名用户
如何使用简单的 shell 命令执行此操作?
你可能想说:
sort -t',' -k2 -nr file
对于你给定的输入 returns:
bruce, 32
peter, 20
alice, 12
bob, 10
user, score
这使用 sort
和这些参数:
-t','
将字段分隔符设置为逗号。
-k2
表示 sort
必须与第二列一起使用。
-nr
表示您想要按数字排序并在 r
everse(最高的从前)。
要仅获取前 50 行,您可以通过管道传输到 head -50
,这将获取上一个命令输出的前 50 行:
sort -t',' -k2 -nr file | head -50
我有一个这样的 csv:
user, score
bob, 10
alice, 12
peter, 20
bruce, 32
...
文件比较大,想获取得分最高的前50名用户
如何使用简单的 shell 命令执行此操作?
你可能想说:
sort -t',' -k2 -nr file
对于你给定的输入 returns:
bruce, 32
peter, 20
alice, 12
bob, 10
user, score
这使用 sort
和这些参数:
-t','
将字段分隔符设置为逗号。-k2
表示sort
必须与第二列一起使用。-nr
表示您想要按数字排序并在r
everse(最高的从前)。
要仅获取前 50 行,您可以通过管道传输到 head -50
,这将获取上一个命令输出的前 50 行:
sort -t',' -k2 -nr file | head -50