У меня есть результат запроса, который я запускал на elasticsearch, который я хочу проанализировать, чтобы предоставить csv с двумя записями в строке.Sed/awk/tr - удалить многострочную строку и формат
Выход образца Я работаю с это:
{
"_index": "file__mdata",
"_type": "assets",
"_id": "24607c5a-2c6g-416a-ab88-58fha56a34ac",
"_version": 6,
"found": true,
"_source": {
"meta": {
"Item Id": "dd0bd495-a4af-49c0-95e3-554097ed6a35",
}
}
},
{
"_index": "file__mdata",
"_type": "assets",
"_id": "fgtaf7g2-32b8-4278-8ca0-3bc0g30ae592",
"_version": 8,
"found": true,
"_source": {
"meta": {
"Item Id": "de2acr1d-5d1b-4171-85d7-d76adbf50cc3",
}
}
}
План закончить следующим:
"_id": "24607c5a-2c6g-416a-ab88-58fha56a34ac","Item Id": "dd0bd495-a4af-49c0-95e3-554097ed6a35"
Так что я должен запустить вывод через Grep -a 5, отфильтруйте внешние области перед тем, как проложить поток через sed с помощью флага s на линию, чтобы удалить каждую линию между ними (используя regEx в строке версии). Выход в конечном итоге выглядит как:
"_id": "24607c5a-2c6g-416a-ab88-58fha56a34ac",
"Item Id": "dd0bd495-a4af-49c0-95e3-554097ed6a35",
"_id": "fgtaf7g2-32b8-4278-8ca0-3bc0g30ae592",
"Item Id": "de2acr1d-5d1b-4171-85d7-d76adbf50cc3",
Попытка запустить тр удалить пустое пространство, кажется, не имеют желаемого эффекта, и единственный выход, я могу показаться, чтобы достичь местами все остального текста на одной строке.
Я чувствую, что многотрубный подход sed запутан, и должен быть более прямой подход, который может обрабатывать многострочный вход. Это может быть достигнуто в notepad ++, например, так что я надеюсь, что я могу закончить сценарий, который я могу запустить на очень большом выходе, где текстовый редактор будет изо всех сил открывать.
Любые предложения? извините, если это все очень прямо для некоторых из вас, но я потерян в сорняках.
Для надежности вы, вероятно, хотите подтянуть регулярные выражения, обнаруживая по крайней мере начало строки, как в ответе Эд. Например, '/^\ s *" _ id "/' уже улучшается. Я написал что-то простое, что было бы (1) работать и (2) быть легко понятным, так что вы могли бы легко настроить его. –