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"
]