Linux

linux +僅將文本文件中的有效IP匹配到其他文件中

  • November 18, 2012

請建議如何僅匹配 file.txt 中的有效 IP ( 255.255.255.255 ) 並僅將有效 IP 插入 VALID_IP.txt 文件

  • (例如參見 VALID_IP.txt )

解決方案應該在我的 ksh 腳本中實現(所以 perl 或 sed 或 awk 也可以)

更多文件.txt

    e32)5.500.5.5*kjcdr
    ##@$1.1.1.1+++jmjh
    1.1.1.1333
    33331.1.1.1
    @5.5.5.??????
    ~3de.ede5.5.5.5
    1.1.1.13444r54
    192.9.30.174
    &&^#%5.5.5.5
    :5.5.5.5@%%^^&*
    :5.5.5.5:
    **22.22.22.22
    172.78.0.1()*5.4.3.277

VALID_IP.txt 文件範例

    1.1.1.1
    192.9.30.174
    5.5.5.5
    5.5.5.5
    5.5.5.5
    22.22.22.22
    172.78.0.1

以下是一個合適的正則表達式,為了我自己的理智,分成 4 行不同的行。

(1?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])\.
(1?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])\.
(1?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])\.
(1?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])

輸出:

egrep -o `cat regex` infile #all regex lines above joined, no spaces

1.1.1.1
1.1.1.133
31.1.1.1
5.5.5.5
1.1.1.134
192.9.30.174
5.5.5.5
5.5.5.5
5.5.5.5
22.22.22.22
172.78.0.1
5.4.3.27

顯然,這與您的範例不符。為什麼?因為我們不能說 3 不屬於 1。如您所見,垃圾編號無法完全猜出。

引用自:https://serverfault.com/questions/448925