【发布时间】:2014-05-16 22:53:39
【问题描述】:
我有带有时间戳的日志文件。我想使用sed 搜索两个时间戳之间的文本,即使第一个时间戳或最后一个时间戳不存在。
例如,如果我在 9:30 到 9:40 之间进行搜索,那么即使 9:30 和 9:40 都不存在但时间戳在 9:30 到 9:40 之间,它也应该返回文本。
我正在使用sed 一个班轮:
sed -n '/7:30:/,/7:35:/p' xyz.log
但它仅在两个时间戳都存在时才返回数据;如果缺少其中一个时间戳,它将打印所有内容。如果时间是 12 小时格式,它将提取上午和下午的数据。
另外,我对不同的日志文件有不同的时间戳格式,所以我需要一个通用命令。
以下是一些时间格式示例:
<Jan 27, 2013 12:57:16 AM MST> Jan 29, 2013 8:58:12 AM 2013-01-31 06:44:04,883
其中一些包含 AM/PM,即 12 小时格式,而另一些包含 24 小时格式,所以我也必须考虑到这一点。
我也试过了,但是没用:
sed -n -e '/^2012-07-19 18:22:48/,/2012-07-23 22:39:52/p' history.log
【问题讨论】:
-
请在 StackOverflow 上搜索您的答案。这个问题每周都会被询问和回答。祝你好运。
-
@shellter 如果经常被问到,也许您可以制作一个副本,以便我们可以正确关闭这个问题?