我有一个文本文件,其中包含来自五个传感器的日期戳和温度值,并且每十分钟该文件就会更新一行新数据。
这是数据文件的示例 - 第 1 列和第 2 列是日期和时间,第 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 天的记录?
最佳答案
坏消息:标准 awk
没有日期处理功能,而日期处理对于 shell 脚本来说是一件碰运气的事情。 GNU 和 BSD 版本的 date
命令都可以使用 date 命令来检查日期,但两者使用完全不同的语法来执行此操作。
如果您使用的是 gawk
或带有 awk
的 Linux,您可以尝试 mktime
函数:
date="20141225011522" # December 25, 2014 at 1:15:22
date_in_seconds = mktime( date )
您需要对日期进行一些重新格式化,但完成后,您将返回自纪元(通常为 1970 年 1 月 1 日)以来的秒数。
顺便说一句,您需要包含您尝试过的示例以及您在代码本身中遇到的问题,否则您的问题将被关闭。
关于linux - 使用 awk 在文本文件中查找匹配日期范围的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27710914/