gpt4 book ai didi

linux - shell 脚本: Increment seconds to date printed in logs

转载 作者:太空宇宙 更新时间:2023-11-04 05:25:57 24 4
gpt4 key购买 nike

我在日志文件中将日期和时间打印为“14:09:49.922 UTC 12.08.2015”

要分析少数情况下的日志,我必须从日志中的该日期和时间开始 grep 接下来的 X 秒。

注意:时区可能会有所不同。

我使用 grep 和 for 循环来根据给定时间迭代秒、分钟或小时。

我正在寻找的帮助是 date 命令中增加秒数的选项,这样如果我将 x 秒添加到给定时间戳,则日期、月年、小时、分钟和秒应该相应更新。

例如:23:59:59 UTC 31.12.2015"+ 1 秒应返回“00:00:00 UTC 01.01.2016”。

基本上,我在 date 命令中寻找选项,而不是手动检查秒数是否超过 59,然后增加分钟等等。

如何使用日期实用程序在 shell 脚本中实现此目的?

最佳答案

日期命令不支持“14:09:49.922 UTC 12.08.2015”格式。

所以我转换为“14:09:49.922 UTC 08/12/2015”,然后使用日期实用程序如下

DATE="14:09:49 UTC 12.08.2015"  
NEXT_DATE=`echo $DATE | awk '{ split($3,a,"."); print $1" "$2" "a[2]"/"a[1]"/"a[3]}'`
TIME_ZONE=`echo $NEXT_DATE | awk '{print $2}'` NEXT_DATE=`TZ="$TIME_ZONE" date +"%H:%M:%S %Z %m/%d/%Y" -d "$NEXT_DATE + 1 second"`
GREP_DATE=`echo $NEXT_DATE | awk '{ split($3,a,"/"); print $1" "$2" "a[2]"."a[1]"."a[3]}'`

grep $GREP_DATE logfile

关于linux - shell 脚本: Increment seconds to date printed in logs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31989776/

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