我正在尝试找到一种方法,将所有出现的IP:Port;数据提取到一个大文本文件中。
txt文件中的数据格式如下:
IP : Port ; IDM [Random data]
10.255.74.66:4195;Wmr!1[Vaf3tgLpOTGtfhS]<br>
11.255.74.67:6741;Wmr2[Pc44bCM4ltw50]<br>
12.255.74.68:3951;Wmr#3a[eSTrTaiN2BzygX]<br>
14.255.74.69:3486;Wmr4b1#[Gytkt2JuH768LD]<br>
预期输出应为:
IP : Port ; IDM
10.255.74.66:4195;Wmr!1<br>
11.255.74.67:6741;Wmr2<br>
12.255.74.68:3951;Wmr#3a<br>
14.255.74.69:3486;Wmr4b1#<br>
在花了几个小时寻找解决方案后,我以这样的方式结束:
cat data.txt | grep -Po "(([0-1](\d\d?)?|2([0-4]\d?|5[0-5]?|[6-9])?|[3-9]\d?)\.){3}([0-1](\d\d?)?|2([0-4]\d?|5[0-5]?|[6-9])?|[3-9]\d?)(:([0-5](\d(\d(\d\d?)?)?)?|6([0-4](\d(\d\d?)?)?|5([0-4](\d\d?)?|5([0-2]\d?|3[0-5]?|[4-9])?|[6-9]\d?)?|[6-9](\d\d?)?)?|[7-9](\d(\d\d?)?)?))?" | sort | uniq >> results.txt
但并不像预期的那样工作。它只提取IP:port
如果有人对此有解决方案,我将不胜感激。
发布于 2018-08-08 15:42:58
您可以断言字符串^
的开头,然后使用求反的character class [^[]+
一次或多次匹配不是左括号的字符串
[^[^[]+
](https://regex101.com/r/LGmVn9/1)
https://stackoverflow.com/questions/51739104
复制相似问题