我有一个文本文件,其中包含来自五个传感器的日期戳和温度值,每隔十分钟就会使用一行新数据更新文件。
以下是数据文件的示例 - cols 1和2是日期和时间,cols 3到7是温度值:
31-12 04:40 19.6 20.5 18.3 21.3 12.5
31-12 04:50 19.6 20.4 18.3 21.3 12.7
31-12 05:00 19.5 20.4 18.2 21.2 12.6
31-12 05:10 19.5 20.4 18.2 21.2 12.5
31-12 05:20 19.5 20.4 18.5 21.2 12.1
如何使用awk从数据文件中提取那些与过去24小时,过去7天,过去28天和过去365天有关的记录?
答案 0 :(得分:0)
坏消息:标准awk
没有日期处理功能,日期处理是shell脚本的命中或遗漏事件。 GNU和BSD版本的date
命令都可以使用date命令来检查日期,但两者都使用完全不同的语法。
如果您使用gawk
或Linux使用awk
,则可以尝试使用mktime
功能:
date="20141225011522" # December 25, 2014 at 1:15:22
date_in_seconds = mktime( date )
您需要对日期进行一些重新格式化,但一旦完成,您将获得自时代(通常是1970年1月1日)以来的秒数
顺便说一下,您需要包含您尝试过的示例以及您在代码中遇到的问题,否则您的问题将会被关闭。