El entorno Unix tiene algunas herramientas excelentes para analizar texto en varias formas. Sin embargo, en los últimos tiempos, los datos no están en los formatos tradicionales (históricos) (CSV, TSV, basados en registros o en algún otro delimitador) que solían tener antes. Los datos de estos días se intercambian en formatos estructurados como XML / JSON.
Sé que hay algunas buenas herramientas como sed, awk y Perl que pueden eliminar casi cualquier tipo de datos. Sin embargo, para trabajar con este tipo de datos estructurados, a menudo uno tiene que escribir un programa completo y, dado el poco tiempo disponible para extraer información, uno tiene que sentarse y descubrir la lógica completa de lo que uno quiere consultar y poner hacia abajo programáticamente. A veces esto no está bien, básicamente porque la información extraída de esos archivos actúa como entradas para el trabajo posterior; también por el tiempo que lleva buscar la solución adecuada y codificarla. Se necesita una herramienta de línea de comandos con suficientes interruptores para buscar, consultar y volcar datos.
Estoy buscando herramientas que tomen un XML / JSON u otras formas de datos estructurados y los descarguen en otros formatos como csv, etc., para que a partir de ahí se puedan usar otros comandos para obtener información.
¿Hay alguna utilidad de línea de comandos que conozca que haga este tipo de trabajo? ¿Ya hay scripts awk / Perl disponibles para esto?
fuente
jq
es una buena herramienta para analizar JSON en el shell: stedolan.github.io/jqSupongo que los módulos Perl, Python o Ruby se pueden usar con éxito para eso. Y cualquiera de estos se puede utilizar para crear secuencias de comandos.
fuente
ruby -e 'program text'
"escribir un guión"?perl -0777 -MJSON -e '$t=from_json(<STDIN>); do_something_with($t)'
permite procesar JSON con un mínimo de alboroto. Todavía tiene que decirle a la computadora qué hacer con los datos de alguna manera.