Awk: Ausgabe als json formatieren [duplizieren]
Diese Frage hat hier bereits eine Antwort:
Geben Sie ein Komma außer in der letzten Zeile in Awk ein 6 AntwortenIch versuche, ein Skript zu erstellen, das die Datenträgerverwendung für einen Computer im JSON-Format zurückgibt. Hier ist der Befehl -
df -k $1 | grep -v Filesystem | gawk 'BEGIN { ORS = ""; print " [ "} {printf " { \"name\" : \""$1"\", \"usage\" : \""$5"\", \"mount_point\" : \""$6"\" }" } END { print " ] " }'`
Die erhaltene Ausgabe ist -
[ { "name" : "/dev/sda4", "usage" : "36%", "mount_point" : "/" } { "name" : "udev", "usage" : "1%", "mount_point" : "/dev" } { "name" : "tmpfs", "usage" : "0%", "mount_point" : "/dev/shm" } { "name" : "/dev/sda1", "usage" : "17%", "mount_point" : "/boot" } ]
Wenn Sie dies beobachten, fehlt ein Komma zwischen zwei JSON-Objekten. Wie füge ich das in den Befehl ein?