Peut-être que j'utilise le mauvais outil pour le travail ici ...
Mes données ressemblent à ceci (ceci est à partir d'un fichier JSON qui a été converti en CSV): P>
| hostname1 | 1 | | | hostname2 | 1 | | | hostname3 | 0 | yay_some_text, more_text, more_text |
3 Réponses :
Dans votre cas, une solution est que vous pouvez transformer le fichier en une structure plus simple avant d'utiliser si tout ce que vous voulez faire est d'afficher comme une table, vous pouvez utiliser < code> colonne code> utilitaire p> si vous êtes un tel particulier sur le sépérateur de départ et de fin, vous pouvez simplement tuyer la sortie de cette commande à un < Code> sed code> | awk code>. p> p>
C'est fondamentalement fait, merci! Il y a un peu de logique dans la table afin que la colonne n'est pas une excellente option. Merci encore: D
C'est l'un de ces cas où quelqu'un demande comment charger leur arme en regardant le tonneau et au lieu de les conseiller de ne pas le faire, vous leur montrez comment :-). S'il n'est pas trop tard - ne fais pas ça!
$ gawk -v RS='"\n' -v FPAT='[^,]*|"[^"]*"' -v OFS=' | ' ' {gsub(/"/,""); $1=$1; print OFS $0 OFS}' file | hostname1 | 1 | | | hostname2 | 1 | | | hostname3 | 0 | yay_some_text more_text more_text |
Quelle que soit celle de ceux-ci que vous préférez fonctionnera robustablement * et utilisez efficacement n'importe quel awk dans n'importe quelle coquille sur chaque case Unix: . p> . p> * en supposant de manière robuste que vos chaînes citées ne contiennent jamais de virgules ni de guillemets doubles évasés, c'est-à-dire On dirait que l'exemple que vous avez fourni et que votre code existant repose sur. p> p>
Avez-vous essayé
JQ code>? Dans votre cas, il peut être utilisé pour préparer un
csv code> à partir de
JSON code> avec une structure plus simple.
@Samdaniel Le CSV vient de JQ, haha. La sortie de l'un des champs a eu des pauses de ligne: / (présentées comme \ n) que j'ai reformatées à l'aide de JQ -R ...
@ user3229731 Vous avez accepté la première réponse que vous avez obtenue et malheureusement, elle est complètement fausse car elle sera extrêmement lente et échoue de manière nouvelle et passionnante donnée à diverses valeurs d'entrée, contenus du répertoire que vous exécutions et les paramètres de variable d'environnement. Voir unix.stackexchange.com/questions/169716/... pour Certains b> des problèmes. Vous voudrez peut-être poser une nouvelle question et cette fois lui donner un certain temps pour voir quelles réponses vous obtenez à mesure que la première réponse que vous obtenez peut ne pas toujours être la meilleure.