0
votes

Extrait uniquement des clés d'un fichier JSON à bash

Donc, j'ai un fichier JSON qui ressemble à ceci;

data {...}
data {...}


2 commentaires

Qu'avez-vous essayé? Avez-vous pris un coup d'oeil à JQ ?


Comme @poshi a dit, utilisez JQ . Cette vidéo a une excellente explication sur la façon d'utiliser JQ : YouTube.com / regarder? v = evpwweih0u


3 Réponses :


1
votes

Comme d'autres suggéraient que vous devriez vraiment utiliser JQ code> outil pour analyse le format JSON. Toutefois, si vous n'avez pas accès à l'outil et / ou si vous ne pouvez pas l'installer, ci-dessous un moyen très simple de traiter le JSON comme texte brut (non recommandé) et produisant la sortie souhaitée:

 grep "\"data\":" json_file | tr -d \"


0 commentaires

1
votes

Vous pouvez utiliser très simplement awk code> avec le séparateur de champ de "{" code> et la longueur du code code> et longueur (2 $) - 1 code> pour couper la fermeture "}" code>.

Par exemple avec vos données: P>

 $ while read -r line; do
>     [[ $line =~ ^\ *\"data\" ]] && {
>         line="${line#*\{}"
>         line="${line%\}*}"
>         echo $line
>     }
> done <json
stuff that i need
more stuff that i need


0 commentaires

1
votes

Avec l'entrée donnée, vous pouvez utiliser

sed -rn 's/.*"(data)": (.*)/\1 \2/p' inputfile


0 commentaires