在 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
.
我尝试使用 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
.