gawk中的时间处理函数

通常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

 

 

你可能感兴趣的:(gawk中的时间处理函数)