Моя цель состоит в том, чтобы объединить структуру, похожую на файловую систему (вложенные каталоги) с исторической информацией для отдельных файлов, в файл CSV для дальнейшей обработки. Здесь - это то, что я пробовал до сих пор.
Упрощенный ввод выглядит следующим образом:
{ "dirs": [
{
"name": "documents",
"files": [
{
"name": "foo.bar",
"history": [
{ "hash": "123", "timestamp": "..."},
{ "hash": "234", "timestamp": "..."}
]
}
],
"subDirs": [
{ "name": "tmp", "files": [...], "subDirs": [...]
}
]
}
]}
Хитрая часть состоит в том, что файл CSV должен содержать полные пути к каталогам, а не только имя каталога. Требуемый результат выглядит следующим образом:
"documents","foo.bar","123","..."
"documents","foo.bar","234","..."
"documents","bar.baz","345","..."
"documents","bar.baz","456","..."
"documents/tmp","deleteme","567","..."
"documents/tmp","deleteme","678","..."
выравнивание большей части данных с помощью recurse
работает с использованием этого запроса:
.dirs[] | recurse(.subDirs[]?) | . as $d | $d.files[]? as $f | $f.history[]? as $h | [$d.name, $f.name, $h.hash, $h.timestamp] | @csv
... но я не могу обернуть голову как я могу сохранить построить путь к каталогу. Любые предложения будут высоко оценены.