gawk中的时间处理函数

    技术2022-05-19  22

    通常awk要用来处理分析很多系统的记录文件,而记录文件里面通常包含关于时间的一些字段。gawk中增加的三个时间处理函数极大地增加了便利。

    systime()

    返回自Epoch时间(1970-01-01 00:00:00 UTC on POSIX systems)到系统当前时间所经过的秒数。

    $ echo | awk '{print systime()}' 1299399602

     

    mktime(datespec)

    其参数datespec的格式是YYYY  MM DD  HH  MM  SS[  DST],而其返回的值和systime()的返回值相同。也就是自Epoch时间以来系统时间所经历了的秒数。如果datespec不符合所要求的格式,则返回-1。

    $ echo | awk '{print mktime("2011 03 06 16 24 08")}' 1299399848

     

    strftime([format [, timestamp[, utc-flag]]])

    上面的三个参数都是可选的。如果三个参数都没有提供,返回系统当前时间,其输出格式是date命令默认的格式。

    $ date Sun Mar  6 16:27:25 HKT 2011

     

    $ 下面是使用gawk的内建函数strftime在没有参数的情况下的输出。

    $ echo | awk '{print strftime()}' Sun Mar 06 16:28:32 HKT 2011

     

    $ 我们也可以自己指定其输出的时间格式

    $ echo | awk '{print strftime("%Y %m %d %H %M %S","1299399848")}' 2011 03 06 16 24 08

     

    $ 对当前系统时间格式化输出

    $ echo | awk '{print strftime("%Y %m %d %H %M %S",systime())}' 2011 03 06 16 31 51

     

     


    最新回复(0)