【发布时间】:2013-08-06 20:56:26
【问题描述】:
我正在尝试从下午 5 点到凌晨 12 点的日志文件中获取 unix 时间戳。
这是我尝试或当前使用的命令。
cat test.log | grep 130805"(1[7-9]|2[0-3])"????
我想获得如下时间戳:
130805223755
130805213755
130805173755
我似乎无法获得正确的模式匹配来获取上面的时间戳。提前请求您的帮助。
【问题讨论】:
-
您应该在 cmd 行上用单引号包围您的 reg-ex 搜索目标,即
grep '130805(1[7-9]|2[0-3])' test.log.. 如果是,请更新您的问题以显示这一点。附言(您不需要/想要搜索目标中的 dbl-quotes)。祝你好运。 -
在正则表达式中,
.是任意字符,?表示前面的字符(或带括号的模式)是可选的。所以把?改成.应该没问题。 (不过,awk会让你使用$1 >= 130805170000 && $1 < 13085230000,这样会更容易理解。) -
@shellter:这些引号没有错。 TIAS。
-
@rici,是的,你是对的。我应该说,“如果你要使用单引号,一定要消除 dbl-quotes,就像我在这个例子中所做的那样”。祝大家好运。