안녕하세요. 다음 JSON 데이터에서 토큰을 추출하려고 합니다 last_name
.first_name
phone
{"message":"{\"_\":\"user\",\"pFlags\":{\"contact\":true},\"flags\":2167,\"id\":95384129,\"access_hash\":\"780828213343231334\",\"first_name\":\"xaa\",\"last_name\":\"xz\",\"phone\":\"989123930793\",\"photo\":{\"_\":\"userProfilePhoto\",\"photo_id\":\"409671715068685579\",\"photo_small\":{\"_\":\"fileLocation\",\"dc_id\":4,\"volume_id\":\"455930331\",\"local_id\":281464,\"secret\":\"3283911659027961987\"},\"photo_big\":{\"_\":\"fileLocation\",\"dc_id\":4,\"volume_id\":\"455930331\",\"local_id\":281466,\"secret\":\"3533047346646019161\"}},\"status\":{\"_\":\"userStatusLastMonth\"}}","phone":"989123930793","@version":"1","typ":"tg_contacts","access_hash":"780828213343231334","id":95384129,"@timestamp":"2020-01-26T13:53:31.091Z","path":"/home/user/mirror2/users_5d3de570e549953b6163eb0f.log","type":"redis","flags":2167,"host":"ubuntu","imported_from":"tg"}
이건 내 명령이야
jq -r '[.first_name, .last_name, .phone]|@csv'
필드만 추출하려면 어떻게 해야 하는데 왜 합계를 phone
추출할 수 없는지 모르겠습니다 .first_name
last_name
답변1
당신이 시도한다면
jq -r '.' file.json
성과 이름은 없고 전화번호만 표시됩니다.
{
"message": "{\"_\":\"user\",\"pFlags\":{\"contact\":true},\"flags\":2167,\"id\":95384129,\"access_hash\":\"780828213343231334\",\"first_name\":\"xaa\",\"last_name\":\"xz\",\"phone\":\"989123930793\",\"photo\":{\"_\":\"userProfilePhoto\",\"photo_id\":\"409671715068685579\",\"photo_small\":{\"_\":\"fileLocation\",\"dc_id\":4,\"volume_id\":\"455930331\",\"local_id\":281464,\"secret\":\"3283911659027961987\"},\"photo_big\":{\"_\":\"fileLocation\",\"dc_id\":4,\"volume_id\":\"455930331\",\"local_id\":281466,\"secret\":\"3533047346646019161\"}},\"status\":{\"_\":\"userStatusLastMonth\"}}",
"phone": "989123930793",
"@version": "1",
"typ": "tg_contacts",
"access_hash": "780828213343231334",
"id": 95384129,
"@timestamp": "2020-01-26T13:53:31.091Z",
"path": "/home/user/mirror2/users_5d3de570e549953b6163eb0f.log",
"type": "redis",
"flags": 2167,
"host": "ubuntu",
"imported_from": "tg"
}
찾고 있는 필드는 에 있으며 .message
, 이는 문자열입니다.인코딩된 JSON 객체.
jq
가지다fromjson
내장 함수를 사용하여 JSON으로 가져올 수 있습니다.
jq -r '.message | fromjson | [.first_name, .last_name, .phone]|@csv' file.json
"xaa","xz","989123930793"