GNU/Linux >> Belajar Linux >  >> Linux

Mengonversi cetakan cantik JSON menjadi satu baris

Anda harus menggunakan jq untuk hal-hal seperti itu:

jq -c . input.txt

Alternatif cepat solusi kotor adalah dengan menggunakan sed &tr :

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

meskipun saya akan merekomendasikan menggunakan jq yang dirancang untuk memanipulasi JSON. jq seperti sed untuk JSON. Memanipulasi JSON secara tekstual dengan sed /awk /etc tidak dijamin menghasilkan JSON yang setara secara semantik.


jq atau json lainnya alat sadar paling cocok untuk manipulasi file json. Namun di sini ada awk solusi berbasis.

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

Catatan:Solusi ini terutama untuk sistem lawas yang tidak memiliki alat seperti jq dan tidak memiliki kesempatan untuk menginstalnya karena beberapa alasan.


Linux
  1. Parsing Satu Bidang Dari Json Array Ke Bash Array?

  2. Jalankan Baris Perintah Dengan Satu Sudo?

  3. Ssh – Menyalin File yang Dilindungi Antar Server Dalam Satu Baris?

  1. Bagaimana Cara Memindahkan Garis Dalam File Teks Ke Atas Atau Ke Bawah Dengan Satu Baris?

  2. Kondisi Satu Baris Check In Makefile?

  3. Cocokkan dua string dalam satu baris dengan grep

  1. Jalankan menggabungkan beberapa perintah Linux dalam satu baris

  2. Cetak baris sebelumnya jika kondisi terpenuhi

  3. Ubah ujung garis Unix ke Windows