awk - sromero - Extraer datos entre dos etiquetas
programacion awk (2)
Estabas muy cerca:
sed -n ''s/^.*<a.href="[^"]*">/([^<]*/)<//a>/([^<]*/).*//1/2/p'' file
Todo lo que se necesitaba era un 2 ° grupo de captura: <//a> después de que el 1 ° coincidiera con la etiqueta de cierre para <a> , y el 2 ° grupo de captura, /([^<]*/) , luego captura todo pero sin incluir la etiqueta de cierre </span> .
/1/2 en la cadena de reemplazo simplemente concatena lo que coinciden los dos grupos de captura, lo que arroja 42.224.0.0/12 con la entrada de muestra.
Después de buscar y leer extensamente, logré hacer la mitad del trabajo.
Aquí está la cadena:
<td class=''bold vmiddle''> Owner CIDR: </td><td><span class=''jtruncate-text''><a href="http://3.abcdef.com/ip-3/encoded/czovL215aXAubXMvdmlldy9pcF9hZGRyZXNzZXMvNDIuMjI0LjAuMA%3D%3D">42.224.0.0</a>/12</span></td>
Necesito extraer el 42.224.0.0 y /12 para hacer un 42.224.0.0/12 .
Ahora logré obtener 42.224.0.0 usando:
sed -n ''s/^.*<a.href="[^"]*">/([^<]*/).*//1/p''
pero no entiendo cómo extraer /12 .
¿Alguien puede ayudar?
Puede probar a continuación la solución awk -
vipin@kali:~$ awk -F''>|<'' ''{print $(NF-6),$(NF-4)}'' OFS="" kk.txt
42.224.0.0/12
Necesita usar múltiples separadores de campo múltiples (>,<) .