【问题标题】:How to sort file using grep, sort in LINUX如何使用 grep 对文件进行排序,在 LINUX 中排序
【发布时间】:2014-02-05 01:21:33
【问题描述】:

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

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

感谢您的帮助。

【问题讨论】:

    标签: linux sorting grep


    【解决方案1】:

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

    从命令行

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

    打印前 6 行也会打印 5 条记录 + 标题行。

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

    【讨论】:

    • 你的awk 太复杂了。这会做:awk '$2>1898' test.txt
    • 在排序中,您需要指定-n 标志以进行数字排序。此外,不推荐使用head -6,而使用head -n 6
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-30
    • 1970-01-01
    • 2013-04-23
    • 1970-01-01
    • 1970-01-01
    • 2011-12-03
    • 2018-09-10
    相关资源
    最近更新 更多