Bash JQ Value mit Text ersetzen

  • Ersteller Ersteller s0pply
  • Erstellt am Erstellt am
S

s0pply

Grünschnabel
Hallo zusammen,

ich möchte in meiner JSON Datei einen Bereich Suchen und Ersetzen:

Bash:
J_ID="1"
NEW_NAME="Ein neuer Name (Text) mit Space komme hier...."
tmp=$(mktemp)

jq --arg id ${J_ID} '( .mods[] | select(.id == "'${J_ID}'") ).name = "'$NEW_NAME'"' ${MODS_DB} > "$tmp" && mv "$tmp" ${MODS_DB}

im Grunde sieht das ganz so aus, bekomme aber diese Fehler Meldung:

Code:
jq: error: syntax error, unexpected $end, expecting QQSTRING_TEXT or QQSTRING_INTERP_START or QQSTRING_END (Unix shell quoting issues?) at <top-level>, line 1:
( .mods[] | select(.id == "1") ).name = "Ein                                                 
jq: 1 compile error

Ändere ich mein String "NEW_NAME="TEST" um, funktioniert dies wunderbar, all so hat JQ ein Problem mit Leerzeichen, wie kann ich dies Trotzdem ersetzten lassen,
Erstelle ich eine JSON mit JQ, kann ich auch Texte Importieren...

Gruß
 

Ähnliche Themen

dovecot und postfix Konfiguration Problem

NagiosGrapher 1.7.1 funktioniert nicht

CentOS 6.3 RADIUS - Keine Verbindung möglich

Rollei Mini Wifi Camcorder

OpenSUSE 12.1: Gnucash startet nicht mehr

Zurück
Oben