我有一个记录文件,按日期存储我们系统的状态。生成它的脚本通过 cron 运行,因此文件不断变长。我写了一个脚本,遍历每一行来处理它,这花了很长时间。我听说 awk 在处理大型文本文件时要快得多。我的问题是我从未使用过它。是否可以使用 awk 获取日期范围内的所有条目?日期均以秒为单位,因为它们是使用 date +%s
生成的。这是我希望能够快速找到范围内数据的输出示例。因此,例如,我如何获取第一列介于 1344279903 和 1344280204 之间的所有行?
1344279903 | 0 | 0 | node | 1
1344279904 | 0 | 0 | node | 2
1344279905 | 0 | 0 | node | 3
1344280202 | 0 | 0 | node | 1
1344280203 | 0 | 0 | node | 2
1344280204 | 99 | 0 | node | 3
最佳答案
您可以像这样使用条件表达式:
awk '$1 >= 1344279903 && $1 <= 1344280204 { print $0 }' data.txt
关于bash - awk 以秒为单位的日期范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11834434/