そのようなものには jq を使用する必要があります:
jq -c . input.txt
別の簡単な汚い解決策は、 sed
を使用することです &tr
:
sed -e 's/^ *//' < input.txt | tr -d '\n'
jq
を使用することをお勧めしますが これは、JSON を操作するために設計されています。 jq
sed
のようなものです JSON用。 sed
を使用して JSON をテキストで操作する /awk
/etc は、意味的に同等の JSON を生成する保証はありません。
jq
またはその他の json
認識ツールは、json ファイルの操作に最適です。しかし、ここでは awk
です。
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": {} }
注:このソリューションは、主に jq
のようなツールを持たないレガシー システム向けです。 何らかの理由でそれらをインストールする機会がありません。