gpt4 book ai didi

awk - 从文件中grep ip和端口

转载 作者:行者123 更新时间:2023-12-04 15:57:46 29 4
gpt4 key购买 nike

cat file.txt


[...]
<td><script> document.write('89.223.92.30')</script></td>
<td><script> document.write('9027')</script></td>
<td><script> document.write('185.204.3.105')</script></td>
<td><script> document.write('1081')</script></td>
<td><script> document.write('91.238.137.108')</script></td>
<td><script> document.write('8975')</script></td>


[...]

我要抢ip和端口;这是我所做的:

egrep -oP '([0-9]{1,3}\.){3}[0-9]{1,3} | [0-9]{2,5}' file.txt 

但它不起作用(第二个模式与其他 pb 中的第一个匹配)。

它只能单独工作。

egrep -oP '([0-9]{1,3}\.){3}[0-9]{1,3}' file.txt
grep -oP "'[0-9]{2,5}'" file.txt

-> 有效,但无法在开头和结尾处去掉 ';如果我在此模型中删除它们,它也会与 ips 匹配,这是我不想要的。

我也试过:

sed 's/                    \<td\>\<script\>                            document\.write\(\'//g' file.txt | sed 's/\'\)\<\/script\>\<\/td\>'//g'

这里的想法是修剪 ip 和端口前后的所有垃圾。

需要的结果:

ip0 port0(我会将结果存储在一个数组中,稍后用于ssh连接)。

ip1 端口 1

ip2端口2...

最佳答案

你可以尝试这样的事情:

$ cat ipport.txt  | sed 's/.*write('"'"'//g' | sed 's/'"'"').*//g' | while read -r ip && read -r port; do echo "$ip $port"; done
89.223.92.30 9027
185.204.3.105 1081
91.238.137.108 8975

但是请注意,这通常非常容易出错。如果您的 ip-port 行顺序将在序列中的某处交换,它就会全部中断。

通常,对于解析 HTML 文件,您可以使用更适合此的其他语言,例如 python 和 BeautifulSoup library

更简单的版本,没有单引号转义:

cat ipport.txt  | sed "s/.*write('//g" | sed "s/').*//g" | while read -r ip && read -r port; do echo "$ip $port"; done

关于awk - 从文件中grep ip和端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59604395/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com