Wie kann ich die JSON-Ausgabe in der Shell analysieren?
Beispielsweise bietet Amazon Web Services eine CLI zum Abrufen des Status Ihrer Instanzen:
$ aws ec2 describe-instances <my_instance_id>
Der Befehl gibt jedoch eine JSON-Zeichenfolge zurück. Die Ausgabe dieses Befehls sieht folgendermaßen aus:
$ aws ec2 describe-instances x12345
{
"Reservations" :
{
"OwnerId": "1345345"
"Groups": [],
"SecurityGroups": [
{
"Foo" : "yes"
"Bar" : "no
}
]
}
}
Gibt es integrierte Shells, mit denen die JSON-Ausgabe analysiert werden kann?
Zum Beispiel möchte ich in einer Shell-Variablen FOO
Folgendes erfassen output["Reservations"]["SecurityGroups"][0]{"Foo"}
.
Falls es hilft, bin ich speziell an Lösungen interessiert, die von Zsh aus funktionieren könnten.
--output text
Sie diese Option, wenn Sie die Shell analysieren möchten, ohne externe Tools wie verwenden zu müssen jshon
.
jshon
zum ersten Mal davon gehört habe, bin ich Ihrem Link gefolgt. Nachdem ich das gelesen habe, kann ich nur sagen, dass ich sehr erfreut war, dass ich zufällig zuerst davon gehört und es installiert habe jq
. Ich denke, Sie möchten vielleicht auch davon hören, wenn Sie es noch nicht getan haben - es stört nicht alle diese Befehlszeilenschalter und kann seine eigenen regulären Ausdrücke ausführen - es ermöglicht Ihnen sogar, Funktionen und Variablen zu deklarieren, wenn Sie dies wünschen. Sehen Sie die Antwort hier darüber, wenn Sie interessiert sind.