我有一個bash腳本的字符串包含行日誌條目,如本:bash腳本:SED/AWK /正則表達式匹配的IP地址和替換
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」是提交此登錄嘗試失敗登錄的機器。有人試圖從日誌條目「10.224.0.58」中的第二個IP地址的計算機上登錄並失敗。如你目前所看到的是「IPADDRESS/IPADDRESS」,它是兩次使用相同信息的無用的IPADDRESS/IPADDRESS,這個IP地址「10.224.0.2」所以在這裏,我想用grep
(或類似的)輸出第一個IP,然後將它傳遞給像host
這樣的命令,以獲得反向主機並將其替換爲日誌輸出。
我想重申一下第二個IP「10.224.0.58」。我想找到這個IP,並用主機名替換它。
這不僅僅是這兩個特定的IP地址,任何IP地址。所以我想搜索1到3之間的4個整數,以3個滿分隔開。「
這是正確的表達方式嗎,還是這個問題複雜化了?
非常感謝。
你想要的任何IP地址的模式或這個特定的一個文件? – detunized
您需要提供一些更好的示例輸入,來自該輸入的預期輸出,解釋爲什麼當您已經知道它們時,您想在文件中找到這兩個特定IP地址,以及「變量」的含義 - 一個shell變量,一個awk變量?別的東西?你用什麼命令做「反向查找」? –
我已經更新了這個問題,希望這可以澄清我的要求 – jwbensley