【发布时间】:2015-07-07 11:34:06
【问题描述】:
有没有办法使用 bash /sed/awk 从日志文件的每一行中提取 IP 地址以显示 IP 主机对话或连接尝试?
日志文件示例:
*Teardown TCP connection -1948864210 for Node14:110.98.8.41 to Net_N:10.98.35.28 duration 0:02:01 bytes 0 SYN Timeout
Built outbound TCP connection -1948863670 for Net11:10.10.2.5 (10.10.2.5 to Net01:10.9.15.2 (10.9.15.2)
Deny tcp src Node22:10.128.4.201/2254 dst outside:10.198.2.1/5560 by access-group "111"*
必需的输出,列出 IP 对话/连接尝试:
110.98.8.41 10.98.35.28
10.10.2.5 10.9.15.2
10.128.4.201 10.198.2.1
我尝试使用 grep 去除 IP:
cat log.file | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | sort | uniq
但输出仅列出单个 IP 地址,而不是逐行 IP 对话
任何帮助表示赞赏..
【问题讨论】:
-
第二行包含四个 IP 地址。你如何确定哪两个是你想要的?
-
日志文件有定义的格式,我会使用
awk。 -
抱歉,这是日志文件第二行的错字。每行仅包含 2 个唯一的 IP 地址