-1
를 기록 할 추가 그것은 나에게 그렇게 같은 매트에 대한 꽤 프린트 제공 :AWK/SED 파일을 내가 운영하는 qpid 명령을
{
"value": {
"application": {
"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": "Class"
}
},
"queueStats": {}
내가이 출력을하고 quitation 마크뿐만 아니라 브래킷을 제거를 나는 아래의 명령을 사용하여 로그 파일에 추가합니다
^M^M^MendpointApplications:^MApplicationSide:^MconnectionState:Disconnected,^MconnectionTime:Noconnectionwasestablished,^MlinkAttributes:^MackSettings:^MdataAckEnabled:true,^MdataAckTimeout:5000,^MdataNakRetryLimit:0,^MretransmitDelay:500^M,^MkeepAliveSettings:^MkeepAliveAckTimeout:5000,^MkeepAliveInterval:30000^M,^MlogTraffic:false,^Mport:9999,^Mrole:server^M,^Mprotocol:ClassD^M^M,^MqueueStats:^M
어떻게받을 수 있나요 :
command | sed 's/"//g' | sed 's/{//g' | sed 's/}//g' | sed -e 's/$/\r/g' |awk '!/""/{ORS=(/},/?RS:""); gsub(/[[:blank:]]+/,""); sub(/}$/,"},\n"); print}' |awk '{gsub(/\\n/,"\n")}1' >> app.log
결과는 다음은 새 행의 로그에 출력을 추가 할 때마다^M 문자를 제거 하시겠습니까?
내 예상 된 결과는 다음과 같습니다 기본적으로
endpointApplications:ApplicationSide:connectionState:Disconnected,connectionTime:Noconnectionwasestablished,linkAttributes:ackSettings:dataAckEnabled:true,dataAckTimeout:5000,dataNakRetryLimit:0,retransmitDelay:500,keepAliveSettings:keepAliveAckTimeout:5000,keepAliveInterval:30000,logTraffic:false,port:9999,role:server,protocol:ClassD,queueStats:
, 같은 결과는 이전하지만 M 문자 ^없이, 나는 새로운 석회에 매번 명령의 결과를 추가하고 싶습니다.
해당 문자는 매번 새로운 줄에 추가하려고 시도하고 있습니다. 줄 바꿈없이 하나씩 추가하면 문자가 없습니다. –
sed로 JSON을 구문 분석하지 마십시오.'jq'를 사용하십시오. –
감사합니다! 그것을 꺼내서 내가 원하는 결과를 얻었습니다! –