.txt 파일 데이터를 json 형식으로 변환

.txt 파일 데이터를 json 형식으로 변환

다음 데이터가 포함된 로그 파일이 있는데 user.txt이를 json 형식으로 변환하고 싶습니다.

{"user":"Demo Admin","user_id":"57c4718434243dc47d8b456c","org_id":"57c4718434243dc47d8b456b","superuser_id":null,"superuser_name":null,"application":"Trackier Webapp","method":"GET","ip":"43.249.54.66","domain":"demo.trackier.com","url":"https:\/\/demo.trackier.com\/admin.html","created":"2022-09-08 06:19:18","@timestamp":"2022-09-08T06:19:18Z"}
{"user":"Demo Admin","user_id":"57c4718434243dc47d8b456c","org_id":"57c4718434243dc47d8b456b","superuser_id":null,"superuser_name":null,"application":"Trackier Webapp","method":"GET","ip":"43.249.54.66","domain":"demo.trackier.com","url":"https:\/\/demo.trackier.com\/admin.html","created":"2022-09-08 06:19:35","@timestamp":"2022-09-08T06:19:35Z"}

답변1

한 줄에 하나의 json이 있는 파일을 json 배열로 변환한다고 가정하면 다음과 같이 할 수 있습니다.

sed '1s/^/[/;$s/$/]/;$!s/$/,/' < file.multijson > file.json

[첫 번째 줄의 시작 부분, ]마지막 줄의 끝 부분, ,마지막 줄을 제외한 모든 부분의 끝 부분에 삽입 됩니다 .

이 있는 경우 jq다음을 수행할 수도 있습니다.

jq -s < file.multijson > file.json

(간소한 형식을 위해 추가됨 -c) 그러나 숫자(예: 1e1 또는 10.0000000000000001을 10으로 변경) 또는 문자열(예: "\u00e9"로 변경 "é")의 형식을 다시 지정할 수 있습니다.

관련 정보