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
но он не работает (второй шаблон совпадает с первым среди других программ).
он работает только индивидуально.
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 (я буду хранить результаты в массиве, который будет использоваться для соединения s sh позже).
ip1 port1
ip2 port2 ...