L'environnement Unix possède d'excellents outils pour analyser le texte sous diverses formes. Cependant, récemment, les données ne sont pas dans les formats traditionnels (historiques) (CSV, TSV, basés sur des enregistrements ou d'autres délimiteurs) qu'elles étaient auparavant. De nos jours, les données sont échangées dans des formats structurés comme XML / JSON.
Je sais qu'il existe de bons outils comme sed, awk et Perl qui peuvent détruire presque toutes les formes de données. Cependant, pour travailler avec ce type de données structurées, il faut souvent écrire un programme complet et, compte tenu du peu de temps disponible pour extraire des informations, il faut s'asseoir et comprendre toute la logique de ce que l'on veut interroger et mettre vers le bas par programme. Parfois, ce n'est pas OK - essentiellement parce que les informations extraites de ces fichiers agissent comme entrées pour d'autres travaux; également en raison du temps qu'il faut pour rechercher la solution appropriée et la coder. Un outil de ligne de commande est nécessaire avec suffisamment de commutateurs pour rechercher, interroger et vider les données.
Je suis à la recherche d'outils qui prennent un XML / JSON ou d'autres formes de données structurées et le vident dans d'autres formats comme csv, etc., afin qu'à partir de là, on puisse utiliser d'autres commandes pour obtenir des informations.
Y a-t-il des utilitaires de ligne de commande que vous connaissez qui font ce genre de travail? Existe-t-il déjà des scripts awk / Perl disponibles pour cela?
la source
jq
est un bon outil pour analyser JSON dans le shell: stedolan.github.io/jqJe suppose que les modules Perl, Python ou Ruby peuvent être utilisés avec succès pour cela. Et n'importe lequel d'entre eux peut être utilisé pour l'écriture de scripts.
la source
ruby -e 'program text'
"écrire un script"?perl -0777 -MJSON -e '$t=from_json(<STDIN>); do_something_with($t)'
vous permet de traiter JSON avec un minimum de tracas. Vous devez toujours dire à l'ordinateur quoi faire avec les données.