2

我正在查看来自 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
4

2 回答 2

1

试试这个:

  sed -e 's;^.*\(\[.*\]\).*$;\1;' inputFileName > outputFileName
于 2012-05-11T12:58:41.357 回答
1
grep -o '\[[^]]\+\]' file

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

于 2012-05-11T14:05:12.097 回答