GNU/Linux >> Linux Esercitazione >  >> Linux

Conversione di una bella stampa JSON in una riga

Dovresti usare jq per cose del genere:

jq -c . input.txt

Una soluzione alternativa rapida e sporca sarebbe usare sed &tr :

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

anche se consiglierei di usare jq progettato per manipolare JSON. jq è come sed per JSON. Manipolare JSON testualmente con sed /awk Non è garantito che /etc produca JSON semanticamente equivalente.


jq o qualsiasi altro json consapevole è più adatto per la manipolazione di file json. Tuttavia, qui c'è awk soluzione basata.

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": {} }

Nota:questa soluzione è principalmente per i sistemi legacy che non dispongono di strumenti come jq e non ho alcuna possibilità di installarli a causa di alcuni motivi.


Linux
  1. Stampa due file in due colonne?

  2. Stampa la riga di corrispondenza e l'ennesima riga dalla riga di corrispondenza?

  3. Codificare il contenuto del file e farlo eco come una riga?

  4. Stampa l'ultima riga di un file, dalla CLI

  5. Abbina due stringhe in una riga con grep

Come spostare una riga in un file di testo su o giù di una riga?

Condizione di una riga Check-in Makefile?

Esegui combina più comandi Linux in una riga

Converti i finali di riga Unix in Windows

xargs sostituzione di più di un argomento

Fai in modo che ls stampi tutto su una riga (come nel terminale)