GNU/Linux >> Znalost Linux >  >> Linux

Převod pěkného tisku JSON na jeden řádek

Pro takové věci byste měli použít jq:

jq -c . input.txt

Alternativní rychlé a špinavé řešení by bylo použít sed &tr :

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

i když bych doporučil použít jq který je určen pro manipulaci s JSON. jq je jako sed pro JSON. Textová manipulace JSON pomocí sed /awk Není zaručeno, že /etc vytvoří sémanticky ekvivalentní JSON.


jq nebo jakýkoli jiný json Nástroj vědomý je nejvhodnější pro manipulaci se soubory json. Zde je však awk založené řešení.

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

Poznámka:Toto řešení je určeno hlavně pro starší systémy, které nemají nástroje jako jq a z nějakých důvodů nemají šanci je nainstalovat.


Linux
  1. Tisknout dva soubory ve dvou sloupcích?

  2. Tisknout odpovídající čáru a N-tou čáru ze shodné čáry?

  3. Analyzovat jedno pole z pole Json do pole Bash?

  1. Vykonat řadu příkazů jedním sudem?

  2. Kódovat obsah souboru a echovat jej jako jeden řádek?

  3. Vytiskněte poslední řádek souboru z CLI

  1. nástroj příkazového řádku pro tisk statistik čísel v linuxu

  2. Proveďte kombinaci více příkazů Linuxu na jednom řádku

  3. Vytiskněte předchozí řádek, pokud je splněna podmínka