我每天都使用日志文件。我一直在使用 sed 来完成我在时间戳之间提取某些数据行的目标。例如,我使用:
sed '/20150720 15:06:00/,/20150720 16:25:00/! d' logfile.log > /tmp/logpart.log
但是,这仅在时间戳实际匹配文件中的一行时才有效。如何强制 sed 处理我想要的数据,而不必进入文件来获取实际时间戳?例如,在上面的示例中,我只想要 15:00 到 16:30 之间的所有内容,而不管文件中是否有匹配的时间戳。
我每天都使用日志文件。我一直在使用 sed 来完成我在时间戳之间提取某些数据行的目标。例如,我使用:
sed '/20150720 15:06:00/,/20150720 16:25:00/! d' logfile.log > /tmp/logpart.log
但是,这仅在时间戳实际匹配文件中的一行时才有效。如何强制 sed 处理我想要的数据,而不必进入文件来获取实际时间戳?例如,在上面的示例中,我只想要 15:00 到 16:30 之间的所有内容,而不管文件中是否有匹配的时间戳。
由于您的日志文件具有按字典顺序排序的时间戳的好习惯,因此您可以使用 awk 简单地比较字符串,例如:
我在这里假设您的时间戳从第 1 列开始(从 1 开始编号)。如果不是,请
,1,
适当更改。