如何获取文件日志的最近三个日期?

如何获取文件日志的最近三个日期?

如何打印下一个输出的最后三个日期:

User;month/day/year

    user1:01/01/2015
    user1:01/01/2015
    user1:01/01/2015
    ...
    user1:01/09/2018
    user1:01/08/2018
    user1:01/07/2018
    user1:01/04/2016
    user1:01/02/2016
    user1:01/01/2016

在本例中(2018 年日期)

编辑:

我有 awk 的下一个命令:

awk '{ print $1":" substr( $0,285,291 )}' $file_input | awk '{ print $1}' | sort -n -r

期望的输出:

    user1:01/09/2018
    user1:01/08/2018
    user1:01/07/2018

答案1

在这里,先对YYYY部分进行排序,然后按mm/dd词法对部分进行排序。

这将分别是第二个分隔字段的第 7到第 10字符和1 个到第 5 个字符:,因此:

<file sort -r -b -t: -k2.7,2.10 -k 2.1,2.5 | head -n 3

(这里添加一个-b以允许(并忽略)周围的空白:

答案2

考虑使用这样的排序:

sort -rt/ -k3n -k1.11n -k2n < input | head -3

这将基于 3 个关键字段和/分隔符对行进行排序:首先是年份,然后是月份(字段 1,跳过用户名和冒号),然后是字段 2——全部按数字排序。仅输出tail -3最后(最新)3 行/日期。

相关内容