2017-08-03 1 views
-1

zu speichern Hallo, ich habe ein Problem mit Shell und jq.Verwenden von jq, um einen Teil von JSON in Variable

Ich habe Datei, sagen wir Text.txt und es enthält nur JSON, sagen wir {"Zeilen": [{"Beispiel": "20"}]}. Ich muss ein Skript in der Shell schreiben, das diese Textdatei als erstes Argument liest und den Wert von "example" aus diesem JSON in der Variablen mit jq speichert.

das ist, was ich bisher, aber es druckt nur eine leere Zeile aus:

file=$(readlink -f "$1") 
variable="$file" | jq -j ".rows[].example" 
echo "$variable" 

für mich interessant ist, dass dieser Code Arbeit, dass es druckt richtig

file=$(readlink -f "$1") 
cat "$file" | jq -j ".rows[].example" 

Bedeutung 20.

Weiß jemand, was mache ich falsch? Thx Jungs

+0

' "$ file" | jq -j ".rows []. Beispiel" 'ist nicht dasselbe wie' cat "$ file" | jq -j ".rows []. Beispiel" '... warum würdest du noch etwas anderes erwarten? –

+0

@Fredegar - Was ist, wenn das Array mehr als ein Element enthält? – peak

Antwort

1

Nicht wirklich eine jq Frage, aber statt

variable="$file" | jq -j ".rows[].example" 

Ich vermute, Sie so etwas wie dies beabsichtigt:

variable=$(cat "$file" | jq -j ".rows[].example") 
Verwandte Themen