在 linux 文件中,如何打印列中最大的 20 个数字?

In a linux file, how to print the 20 biggest numbers in a column?

我尝试使用 awk,例如,我可以在第 8 列中找到最大的数字。现在我需要找到列中最大的 20 个。我使用了很多变量吗?这是我知道如何使用的:

$ awk '>max{max=}END{print max}' my_file.txt

我是linux的新手,很难在手册中找到此类问题的答案,所以希望大家能帮助我!谢谢! :)

还有一件事:我需要更改所有包含“18”的文件的权限。我尝试使用这样的东西但它不起作用,因为我遗漏了一些东西(我什至不知道是否可以这样写):

grep -r 18 | chmod -R 775

再次感谢您的帮助!

你有没有简单地尝试过sort -nrk8 my_file.txt | head -20
n 标志使其成为数字排序, r 将其反转(最大的优先)并且 k8 选择第 8 列。

像这样:

sort -k 8 -n -r my_file.txt | head -20

即以字段8为key排序(-k代表"key"),使用数字排序(-n),倒序(-r) ,即从最大的数字开始。最后,取前 20 行 head.