linux - 基于时间戳的日志获取

标签 linux awk

从 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/

相关文章:

c - 在linux中的同一个套接字上接收来自不同组的多播数据

linux - 是否可以实现用 Apple Swift 语言编写的跨平台(在 OS X 和 Linux 上编译和运行)GUI 应用程序?

linux - 如何一次重命名多个不同名称的文件?

awk - Linux awk 命令

awk - 为什么 awk sub/gsub 只是删除匹配项?

linux - Vagrant for virtual linux dev - 如何知道虚拟机启动是否为 "hanging"?

linux - 如何使用 bash 命令删除文本文件中与多个模式匹配的行?

linux - 创建在 mac 10.6 上运行的 linux 交叉编译器

awk - 如何提取前两列,然后删除第二列中的部分信息?

linux - 如何使用 ssh -t 命令,其中包含带引号的 grep