Ich versuche , eine JSON - Datei zu laden jq
pro hier . Es ist ganz einfach und das funktioniert:
$ cat ~/Downloads/json.txt | jq '.name'
"web"
Ich muss jedoch die Ausgabe dieser Variablen einem Befehl zuweisen. Ich habe versucht, dies zu tun und das funktioniert:
$ my_json=`cat ~/Downloads/json.txt | jq '.name'`
$ myfile=~/Downloads/$my_json.txt
$ echo $myfile
/home/qut/Downloads/"web".txt
Aber ich will /home/qut/Downloads/web.txt
.
Wie entferne ich die Anführungszeichen, dh ändere "web"
auf web
?
tr
Befehl ... Ich habe 4 verschiedene Posts mit Hunderten von Upvotes durchgesehen, in denen Leute mehr als 40 Mega-One-Liner geschrieben haben, um die Arbeit zu erledigen. Sie haben die richtige (und wahrscheinlich moderne) Lösung.Im speziellen Fall von
jq
können Sie festlegen , dass die Ausgabe in sein sollte roh Format:So veranschaulichen Sie die Verwendung der Beispieldatei
json.txt
aus Ihrem Link :wohingegen
quelle
Sie könnten so verwenden
eval echo
:Dies ist jedoch nicht ideal - kann leicht zu Fehlern und / oder Sicherheitslücken führen.
quelle
Es ist einfacher und effizienter, die native Funktion zum Entfernen von Shell-Präfixen / Suffixen zu verwenden:
Quelle /programming/9733338/shell-script-remove-first-and-last-quote-from-a-variable
quelle