regex - Grep regex捕获不带端口的IP套接字

标签 regex sockets sed grep cut

我的文件中包含以下日志:

Aug 27 18:41:44 Testlab nixc[27354]: 207416484 {10.20.21.106:52907 10.20.21.27:80} http traffic

我只想提取ips示例:
10.22.39.106 10.242.29.27

我试过了
grep -E -o '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}.*[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' log

我仍然得到
10.20.21.106:52907 10.20.21.27
10.20.21.106:52907 10.20.21.27
10.20.21.106:52907 10.20.21.27
10.20.21.106:52907 10.20.21.27

也许有些sedcut可以解决问题?

先感谢您。

最佳答案

不知道这是否可以与grep一起使用:

\d{1,3}(?:\.\d{1,3}){3}

我在网站上发布了一个链接,您可以在其中测试像jsfidle这样的正则表达式,但是显然我还不能发布链接,谷歌搜索它;)

编辑:

在这里,你去:
egrep -o '[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}' /var/log/auth.log >> test.log

关于regex - Grep regex捕获不带端口的IP套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18622206/

相关文章:

regex - 使用 Regex 捕获 HTML 注释但忽略特定注释

python - 正则表达式:匹配多个固定长度

regex - 如何使用 sed 提取以 '(' 开头的模式

java - 如何在写入输出流时连续监听输入流?

c - 脚本 : insert an additional #include after the last #include in many, 许多文件

linux - 加入一对具有特定起点的线

regex - Coldfusion 正则表达式问题

c - 如何在 C 中将客户端的 IP 存储在数组中(套接字编程)

java - 远程主机强行关闭连接 - C# 客户端、Java 服务器

bash - 用不同文件中的列替换文件中的列,同时保留格式