У меня есть следующее сообщение JSON. Это одно целое сообщение. В одном файле так много сообщений вроде этого. Это json-сообщение было создано из несформированного json-сообщения с использованием jq.jq - извлечение подмножества соответствующих документов из потока
{
"header": {
"user": "baskar"
},
"requests": [
{
"first_name": "mike",
"last_name": "mat"
},
{
"first_name": "mike",
"last_name": "mat"
}
],
"check": [
"Y"
]
}
{
"header": {
"user": "baskar"
},
"message": {
"header": {
"user": "baskar"
},
"response": {
"resultsList": {
"result": [
{
"first_name": "mike1",
"last_name": "mat"
}
]
},
"errorMsg": null
}
}
}
Я хотел бы сделать некоторые фильтры на этом. Например, когда я ищу имя first_name, mike1, я должен получить заголовок и запрос соответствия внутри запроса. Также результат сопоставления внутри сообщения Response. Таким образом, вывод ожидается следующим образом для строки поиска mike1.
{
"header": {
"user": "baskar"
},
"requests": [
{
"first_name": "mike1",
"last_name": "mat"
}
],
"check": [
"Y"
]
}
{
"header": {
"user": "baskar"
},
"message": {
"header": {
"user": "baskar"
},
"response": {
"resultsList": {
"result": [
{
"first_name": "mike1",
"last_name": "mat"
}
]
},
"errorMsg": null
}
}
}
В принципе, я хочу, чтобы отфильтровать непревзойденную запрос внутри массива запросов и непревзойденного результата внутри результирующего массива.
В настоящее время я использую следующий скрипт, чтобы получить форматированное сообщение json из файла журнала сообщений unformatted json.
sed -n "/<SEARCH_STRING>/ s/.*Service - //p" $1/test.log* | jq . > ~/result.log
Спасибо, Baskar.S
Что такое '$ 2'? Как этот скрипт 'sed' относится к выходу, который вы нам показали? Почему вы массируете данные с помощью 'sed' перед тем, как передать его' jq'? –
Привет, На самом деле в файле журнала будет много сообщений json. Я использую sed, чтобы отфильтровать соответствующие json-сообщения и удалит ненужный текст из сообщения json, поскольку он добавляется с датой и временем в журналах. – user1578872
Вы уже используете 'jq' для работы с вашими данными, почему бы просто не сделать фильтрацию правильно, а не надеяться, что' sed' может исправить это? –