来自Mirc日志的grep ip和主机名

时间:2015-08-22 09:49:42

标签: regex unix filter mirc

我需要过滤掉已加入我服务器的所有主机名/ ip。

我有一个日志文件,但我不知道我可以使用什么正则表达式,我已经尝试过在这里搜索。

也许你可以帮助我?

日志:

03[22:56] * Jason (~Jason@33-33-33-33.rev.sfr.net) has joined #talk
03[22:56] * NotJason (~NotJason@12.34.22.22) has joined #talk

2 个答案:

答案 0 :(得分:0)

可能你应该试试这个:

(?<=@).+?(?=\))

.匹配任何字符

+一次或多次

?使其不贪心,即搜索将在第一次出现时停止

?=肯定前瞻(寻找)并停止)

更新

使用grep就会像这样

grep -o -P  '(?<=@)(.+?)(?=\))' logfile > file2

?<=正面看是正面的(寻找@后面)。

-o只打印匹配的部分。

-P perl-regexp(PATTERN是一个Perl正则表达式)

答案 1 :(得分:0)

你是否允许在昵称中使用括号? 如果不是,你可以试试像

这样的东西
$ cat logfile | grep -o \(.*\) | tr -d '()'

如果是,您需要告诉我们更多关于昵称可以是什么以及聊天室名称的内容。否则,当昵称或房间名称包含空格或()时,此处提供的所有正则表达式可能会遗漏某些情况。