GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Konvertieren von JSON-Pretty-Print in eine Zeile

Sie sollten für solche Sachen jq verwenden:

jq -c . input.txt

Eine alternative Quick-a-Dirty-Lösung wäre die Verwendung von sed &tr :

sed -e 's/^ *//' < input.txt | tr -d '\n'

obwohl ich die Verwendung von jq empfehlen würde die für die Manipulation von JSON entwickelt wurde. jq ist wie sed für JSON. Textuelle Bearbeitung von JSON mit sed /awk /etc erzeugt nicht garantiert semantisch äquivalentes JSON.


jq oder jede andere json Awareness-Tool eignet sich am besten für die Bearbeitung von JSON-Dateien. Hier ist jedoch awk basierte Lösung.

awk -v RS= '{$1=$1}1' input.json
{ "endpointApplications": { "App_Name": { "connectionState": "Disconnected", "connectionTime": "No connection was established", "linkAttributes": { "ackSettings": { "dataAckEnabled": "true", "dataAckTimeout": "5000", "dataNakRetryLimit": "0", "retransmitDelay": "500" }, "keepAliveSettings": { "keepAliveAckTimeout": "5000", "keepAliveInterval": "30000" }, "logTraffic": "false", "port": "9999", "role": "server" }, "protocol": "snmp" } }, "queueStats": {} }

Hinweis:Diese Lösung ist hauptsächlich für Legacy-Systeme gedacht, die keine Tools wie jq haben und aus irgendwelchen Gründen keine Chance haben, sie zu installieren.


Linux
  1. So drucken Sie eine JSON-Datei im Linux-Terminal

  2. So analysieren und verschönern Sie JSON mit Linux-Befehlszeilentools

  3. Drucken Sie die letzte Zeile einer Datei über die CLI

  4. Befehlszeilenprogramm zum Drucken von Zahlenstatistiken unter Linux

  5. Ausführen Kombinieren Sie mehrere Linux-Befehle in einer Zeile

Dateiinhalt kodieren und als eine Zeile wiedergeben?

Einzeilige Bedingungsüberprüfung im Makefile?

Vergleichen Sie zwei Zeichenfolgen in einer Zeile mit grep

Einzeiliger FTP-Server

Vorherige Zeile drucken, wenn die Bedingung erfüllt ist

Konvertieren Sie Unix-Zeilenenden in Windows