我需要过滤掉已加入我服务器的所有主机名/ 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
答案 0 :(得分:0)
可能你应该试试这个:
(?<=@).+?(?=\))
.
匹配任何字符
+
一次或多次
?
使其不贪心,即搜索将在第一次出现时停止
?=
肯定前瞻(寻找)
并停止)
更新
使用grep就会像这样
grep -o -P '(?<=@)(.+?)(?=\))' logfile > file2
?<=
正面看是正面的(寻找@后面)。
-o
只打印匹配的部分。
-P
perl-regexp(PATTERN是一个Perl正则表达式)
答案 1 :(得分:0)
你是否允许在昵称中使用括号? 如果不是,你可以试试像
这样的东西$ cat logfile | grep -o \(.*\) | tr -d '()'
如果是,您需要告诉我们更多关于昵称可以是什么以及聊天室名称的内容。否则,当昵称或房间名称包含空格或()时,此处提供的所有正则表达式可能会遗漏某些情况。