Regex 使用sed提取datetime

Regex 使用sed提取datetime,regex,sed,Regex,Sed,我正在查看tomcat的访问日志,该日志包含以下内容: 96.28.193.125 - - [10/May/2012:07:08:39 +0000] 0 "GET / " 200 123 "-" "-" 我想用sed来提取datetimes 所以我才明白: [10/May/2012:07:08:39 +0000] 我知道应该是这样的: sed -e 's/oldstuff//g' inputFileName > outputFileName 其中oldstuff应该是正则表达式,以

我正在查看tomcat的访问日志,该日志包含以下内容:

96.28.193.125 - - [10/May/2012:07:08:39 +0000] 0 "GET / " 200 123 "-" "-"
我想用sed来提取datetimes

所以我才明白:

[10/May/2012:07:08:39 +0000] 
我知道应该是这样的:

sed -e 's/oldstuff//g' inputFileName > outputFileName
其中oldstuff应该是正则表达式,以获取不在方括号之间的文本

我不知道如何在正则表达式中表达它,如果有任何提示,我将不胜感激

我最大的努力是:

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

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

找到一个[然后是一个或多个非]字符,然后找到一个]

@dublintech:所有字符都在一行吗?它对我有用。可以尝试使用
\1\n
而不是
\1
grep -o '\[[^]]\+\]' file