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 (>,<)
.