从 Linux 盒子获取日志时遇到问题。我的日志类型如下。
22-12-2016 13:11:10:324 com.tibco.jtc.ems.JTCLogger::traceMessage() [INFO ] - JTOP: (COUK--141556628-1482412267051) received message: TextMessage={ Header={ JMSMessageID={ID:IRPR03-SB-01.1B458279A852BC1C6BA:6511017} JMSDestination={Topic[$TMP$.IRPR03-CB-01.573D582798FB3554656D.4722]} JMSReplyTo={null} JMSDeliveryMode={PERSISTENT} JMSRedelivered={false} JMSCorrelationID={COUK--141556628-1482412267051} JMSType={null} JMSTimestamp={Thu Dec 22 13:11:10 GMT 2016} JM
正在使用如下命令。
awk -F ' ' '($2 -ge "13:11:10" && $2 -le "13:11:20") {print}' JTC.log > Sidd_JTC.log
根据评论,我尝试了如下一个命令。
start="13:11:10*"
end="13:11:20*"
awk -v start="${start}" -v end="${end}" '$2 >= start && $2 <= end' JTC.log > Sidd_JTC.log
它提供了几乎正确的日志,但它的时间戳小于我提到的时间戳。就像如果给定结束时间13:11:20
,它只给出直到13:11:19
。
谢谢大家。
最佳答案
基本上命令应该如下所示:
awk '$2 >= "13:11:10" && $2 <= "13:11:20"' file.log
如果你想使用变量:
start="13:11:10"
end="13:11:20"
awk -v start="${start}" -v end="${end}" '$2 >= start && $2 <= end' file.log
关于linux - 基于时间戳的日志获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41873158/