我有一个这样开头的文件:

#Population,    Year,   County
3900,   1969,   Beaver
3798,   1970,   Beaver
3830,   1971,   Beaver
3864,   1972,   Beaver
3993,   1973,   Beaver
3976,   1974,   Beaver
4064,   1975,   Beaver

我需要能够使用grep,sort和另一个命令对这个文件进行排序,以打印出1898年以来人口最多的五个县(这个文件要长得多,上面的例子只是一个样本)。我有点困惑,我怎么能用grep和sort做这样的事情。我需要能够按降序输出解决方案。我想我应该先按年份排序,在1898年之前删除所有年份,然后再根据人口重新排序,得到人口最多的县。
谢谢你的帮助。

最佳答案

使用awk筛选年份>1898的行,然后按总体降序排序,然后打印前5行
从命令行

awk '$2>1898' test.txt  | sort -r | head -6

打印前6行还将打印5条记录+标题行。
我是一个偶尔的awk用户。我最初的脚本太复杂了。感谢@Jotne提供了一个简单的解决方案。

10-08 20:03