Also habe ich eine JSON-Datei von Xml konvertiert. Ich versuche, jq in einem Bash-Skript zu verwenden, um dieses Problem zu lösen.Ich war in dieser Zeit
Strom auf der Kommandozeile jq -r '.users.user[0].id."#text"' cosmology18.json
funktioniert gut und zeigt die Ausgabe perfekt
jedoch in bash i Ersetzungen verwenden haben mußte, um zu versuchen dies ohne Entschlossenheit zur Arbeit zu kommen.
erstes bekam ich einen Teil davon, den ersten Teil arbeiten Benutzerdaten
baselineresult=$(jq -r '.users.user[1].cpid."#text"' $1)
würde mir erlauben, ein Echo aus den empfangenen Daten perfekt
jedoch zu lesen, wenn ich versuche, $basecount
hinzuzufügen, die jeweils erhöht Zeit, ich konnte es nicht zur Arbeit bringen, also habe ich diese verrückte Methode konstruiert, in der ich Substitutionen verwenden musste, um den $ basecount in den [] des Benutzers zu bekommen.
bracea="["
braceb="]"
dquote='"'
squote="'"
pound="#"
echo test of command is jq -r "${squote}.users.user${bracea}${basecount}${braceb}.cpid.${dquote}#text${dquote}${squote} $1"
baselineresult=$(jq -r "${squote}.users.user${bracea}${basecount}${braceb}.cpid.${dquote}${pound}text${dquote}${squote} $1")
echo $baselineresult
Der Befehl stimmt mit dem Befehl überein, den ich an der Befehlszeile eingegeben habe.
aber ich diese:
Test des Befehls ist jq -r '.users.user [0] .cpid "# text".' Cosmology18.json jq: Fehler: Syntaxfehler, unerwarteter INVALID_CHARACTER, '.users.user [0] .cpid "# text"' cosmology18.json jq: $ Ende (? Unix-Shell unter Angabe Ausgaben) in Zeile 1 erwartet 1 Kompilierungsfehler
irgendwelche Ideen .. gewesen jetzt seit 8 Stunden. Ich kann nicht scheinen, dieses unzulässige Zeichen zu finden, da die Ausgabe identisch mit der ID ist, die an der Befehlszeile von jq -r '.users.user [0] .id. "# Text"' verwendet wird. Cosmology18.json
sorry ich ein Echo über Echotest der Befehls typoed ist jq -r „$ {} squote .users.user $ {bracea} $ {basecount} $ {braceb } .cpid.$ {dquote} $ {pound} Text $ {dquote} $ {square} $ 1 "auch ich habe versucht, auch ohne alle Untertitel und immer noch eine verdammt gute Zeit für den jq zu akzeptieren, was Bash es geschickt hat, was richtig ausgibt . so dass wir nicht bash aber mit jq –
somethign können Sie diese Zeile reparieren „erste bekam ich einen Teil davon, den ersten Teil zu arbeiten Benutzerdaten zu lesen?“ –
können Sie erklären, was Sie das Skript, vielleicht in Pseudo-Code zu tun? –