JSON을 사용한 빅데이터 로그가 있습니다. JSON 요소는 다음과 같습니다.
{
"context": {
"callback": {
"Data": {
"LastSessionTime": "2020-06-07T09:16:19Z",
"TrackingEnabled": "1",
"Language": "en"
}
}
}
}
"TrackingEnabled": "1"이 포함된 모든 줄을 grep하여 다른 파일에 저장하고 싶습니다. 또한 다음 명령을 사용하고 싶습니다.
grep "TrackingEnabled" : "1" data.log > tracked.log
grep -v "TrackingEnabled" : "1" data.log > untracked.log
하지만 오류가 발생합니다.
grep: :: No such file or directory
grep: 1: No such file or directory
누구든지 해결책을 제안할 수 있나요?
답변1
grep...도 아니다정규식올바른 구문 분석 도구입니다JSON, 사용잭대신에:
jq -r '
.context.callback.Data |
select(.TrackingEnabled == "1") |
"TrackingEnabled: " + .TrackingEnabled
' file.json
산출
TrackingEnabled: 1
그리고 댓글의 새로운 요청은 다음과 같습니다.
jq -r '
[
.context.callback.Data |
select(.TrackingEnabled == "1") |
"TrackingEnabled: " + .TrackingEnabled, .LastSessionTime
]
' file.json
산출
[
"TrackingEnabled: 1",
"2020-06-07T09:16:19Z"
]