如何使用grep对文件进行排序,在LINUX中排序

时间:2014-02-05 01:21:33

标签: linux sorting grep

我有一个像这样开始的文件:

#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年之前删除所有年份,然后根据人口再次排序以获得人口最多的县。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

使用awk过滤年份> 1898的行,然后按总体按降序排序,然后打印前5行

从命令行

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

打印前6行还将打印5条记录+标题行。

我偶尔是awk用户。我最初的awk脚本太复杂了。感谢@Jotne提供的简单解决方案。