使用sed拉出日期时间

时间:2012-05-11 12:51:14

标签: regex sed

我正在查看来自tomcat的访问日志,其中包含以下内容:

96.28.193.125 - - [10/May/2012:07:08:39 +0000] 0 "GET / " 200 123 "-" "-"

我想用sed来取出日期时间。

所以我只看到:

[10/May/2012:07:08:39 +0000] 

我知道它应该是这样的:

sed -e 's/oldstuff//g' inputFileName > outputFileName

oldstuff应该是一个正则表达式,以获取不在方括号之间的文本。

我不知道如何在正则表达式中表达这一点并且会欣赏任何提示?

我尽力而为:

sed -e 's
/[^\[(.*?)\]]//g' inputfilename > outputFileName

2 个答案:

答案 0 :(得分:1)

试试这个:

  sed -e 's;^.*\(\[.*\]\).*$;\1;' inputFileName > outputFileName

答案 1 :(得分:1)

grep -o '\[[^]]\+\]' file

找到 [然后一个或多个不是的字符] 然后找一个]