我在 bash 脚本中有一个字符串,其中包含一行日志条目,例如:
Oct 24 12:37:45 10.224.0.2/10.224.0.2 14671: Oct 24 2012 12:37:44.583 BST: %SEC_LOGIN-4-LOGIN_FAILED: Login failed [user: root] [Source: 10.224.0.58] [localport: 22] [Reason: Login Authentication Failed] at 12:37:44 BST Wed Oct 24 2012
澄清; 那里列出的第一个 IP “10.224.0.2”是提交此日志条目的机器,登录尝试失败。有人试图从日志条目中第二个 IP 地址“10.224.0.58”的计算机登录,但失败了。
我希望将第一次出现的 IP 地址“10.224.0.2”替换为该机器的主机名,正如您目前看到的那样,它是“IPADDRESS/IPADDRESS”,两次拥有相同的信息是没有用的。所以在这里,我想grep
(或类似地)输出第一个 IP,然后将其传递给类似host
命令以获取反向主机并在日志输出中替换它。
我想对第二个 IP“10.224.0.58”重复此操作。我想找到这个 IP 并将其替换为主机名。
但是,不仅仅是这两个特定的 IP 地址,任何 IP 地址。所以我想搜索 1 到 3 之间的 4 个整数,用 3 个句号分隔。
正则表达式是前进的方向,还是使问题复杂化?
非常感谢。