在egrep中使用多个模式

时间:2014-04-15 13:46:03

标签: regex unix

我正在尝试使用正则表达式中的多个模式从文本文件中提取特定的数据列。

我想要获取的数据按以下顺序排列:

IP Address
Date & Time (DD/MM/YYYY HH:MM:SS)
Protocol (3 characters)
Code (Numeric)
Data Quantity (Numeric)
User Agent (Text)
URL

我在表达式构建器站点中构建了以下表达式,以查找下面的示例,但是当我通过终端执行时,它似乎找不到任何内容。

([0-9]{1,3}\.){3}[0-9]{1,3} - - \[([0-9]+)\/([A-Z][a-z]+)\/([0-9]+):([0-9]+:[0-9]+:[0-9]+) \+[0-9]+\] "[A-Z]+ \/([A-Z]|[a-z]+).[a-z]+ [A-Z]+\/[0-9].[0-9]" ([0-9]+) ([0-9]+) "-"? "[a-z]+\/[0-9].[0-9]

这个拿起

"**207.46.98.61 - - [17/Oct/2004:09:10:50 +0100] "GET /robots.txt HTTP/1.0" 200 25 "-" "msnbot/0.3**"

在表达式构建器中,这可以工作,但是当我对终端中的文本文件运行它时,它根本找不到任何内容。

我在终端使用此功能:(text file) | egrep (regex)

如果有人可以提供帮助,我将非常感激。

0 个答案:

没有答案