我在日志文件中打印的日期和时间为“14:09:49.922 UTC 12.08.2015”
要在几个实例中分析日志,我必须在日志中从此日期和时间开始查看下一个X秒。
注意:时区可能会有所不同。
我已经使用grep和for循环来迭代秒或分钟或小时,具体取决于给定时间。
我正在寻找的帮助是date命令中的选项,以增加秒数,这样如果我对给定的时间戳加上x秒,则应相应地更新日期,月份,小时,分钟和秒。
Eg:23:59:59 UTC 31.12.2015“+ 1 seond should return”00:00:00 UTC 01.01.2016“。
基本上我在日期命令中寻找选项而不是我手动检查秒数是否超过59然后递增分钟等等。
如何使用日期实用程序在shell脚本中实现此目的?
答案 0 :(得分:0)
日期命令不支持" 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