示例输入
{
“event_timestamp”: “2016-03-16 13:19:53 UTC”,
“query”: “Plagiarism”,
“search_session_id”: “3605862756e95d26ac180",
“version”: “0.0.2",
“other”: “{\“client_timestamp\“:1458134393.932,\"ios_page_index\":3}“,
“action”: “HIT_BOUNCE”
}
{
“event_timestamp”: “2016-03-16 13:19:53 UTC”,
“query”: “Plagiarism”,
“search_session_id”: “3605862756e95d26ac180",
“version”: “0.0.2",
“other”:“{\“client_timestamp\“:1458134393.932,\"ios_page_index\":3,\"ios_index_path_row\":1}“,
“action”: “HIT_BOUNCE”
}
我想在“其他”字段
中输出唯一键名“client_timestamp,
ios_page_index,
ios_index_path_row“
尝试了以下命令但到目前为止无效
cat sampleexample.json | jq'.other | keys'|排序| uniq> other.json
提前致谢
答案 0 :(得分:1)
示例输入不是JSON,它不允许将花哨的引号用作字符串分隔符。以下假设输入已得到纠正。
.other
的值是一个JSON字符串;您可以使用fromjson
将字符串更改为JSON对象。
sort|unique
是多余的,因为unique
首先对其输入进行排序。
全部放在一起:
$ jq '.other | fromjson | keys_unsorted | unique' input.json
[
"client_timestamp",
"ios_page_index"
]
[
"client_timestamp",
"ios_index_path_row",
"ios_page_index"
]
(使用keys_unsorted
保存一个排序操作。)