gpt4 book ai didi

bash - 如何在bash中计算日期范围内的文件行数?

转载 作者:行者123 更新时间:2023-12-04 19:32:49 25 4
gpt4 key购买 nike

我在服务器上使用 centos,我想计算特定日期范围内文件的行数?我正在尝试调试我的程序。

2016-06-30T14:09:06+00:00
2016-06-30T14:09:06+00:00
2016-06-30T14:09:06+00:00
2016-06-30T14:09:06+00:00
2016-06-30T14:09:06+00:00
2016-06-30T14:09:07+00:00
2016-06-30T14:09:07+00:00
2016-06-30T14:09:07+00:00
2016-06-30T14:09:08+00:00
2016-06-30T14:09:08+00:00

如果我想计算给定日期范围从 2016-06-30T14:09:06+00:00 - 2016-06-30T14:09:08+00:00 开始的文件中有多少行,那么现在的数据将是这样的。包括的。那可能吗?

结果应该是 10

最佳答案

只需正常比较它们:您可以使用字母数字比较来比较您的时间戳并得到正确的答案 - 这就是 ISO 8601 的美妙之处符号(source)。

awk -v ini="2016-06-30T14:09:06+00:00" -v end="2016-06-30T14:09:08+00:00" \
'$0>=ini && $0<=end {sum++} END{print sum}'

使用您的文件:
$ awk -v ini="2016-06-30T14:09:06+00:00" -v end="2016-06-30T14:09:08+00:00" '$0>=ini && $0<=end {sum++} END{print sum}' file
10

使用更具代表性的输入:
$ cat t
2015-06-30T14:09:06+00:00
2016-06-29T14:09:06+00:00
2016-06-30T14:09:05+00:00
2016-06-30T14:09:06+00:00
2016-06-30T14:09:07+00:00
2016-06-30T14:09:07+00:00
2016-06-30T14:09:08+00:00
2016-06-30T14:09:09+00:00
2016-06-30T14:10:08+00:00
2016-07-30T14:09:08+00:00
$ awk -v ini="2016-06-30T14:09:06+00:00" -v end="2016-06-30T14:09:08+00:00" '$0>=ini && $0<=end' t
2016-06-30T14:09:06+00:00
2016-06-30T14:09:07+00:00
2016-06-30T14:09:07+00:00
2016-06-30T14:09:08+00:00

关于bash - 如何在bash中计算日期范围内的文件行数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38125682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com