Analizar datos estructurados desde la línea de comandos

Para texto plano basta con herramientas clásicas como awk, pero para datos dentro de páginas HTML o en Json hay alternativas más cómodas:

  • jq: JSON
  • scrape: HTML (XPath)

Patrones

Extraer las celdas de una tabla

# -a permite seleccionar sólo uno de los atributos de los elementos encontrados
# la expresion Xpath puede contener "|" para elegir varios elementos según diferentes criterios
# para quedarse sólo con el texto debería bastar /text() , pero en scrape no funciona...
scrape -a id -e '//td[@class="temperature"]' < fichero

Unir dos líneas

# cada - une una nueva linea
paste - -
sed 'N'

Eliminar etiquetas HTML

sed 's_<[^>]*>__g'

Cambiar de separador

# de : a espacio
tr ":" " "

Pasar de hora a época

# actualizar base a la época correspondiente al dia
# en el ejemplo, se añaden 16 días extra 
# el fichero de entrada tiene tres columnas: hora, minuto, dato
awk 'BEGIN{base=1465596000+(16*24*3600)}{print ($1*3600 + $2*60 + base) " " $3}'

Gráfica de dos series de tiempos

gnuplot
plot "serie1.txt" using 1:2, "serie2.txt" using 1:2

Más info: Data science at the command line / Introducción a Xpath

lynx, xmllint y ejemplos Xpath

Más ejemplos de XPath

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *