Я пытаюсь найти группу файлов
> find . -type f -iregex .*geojson$
> ./dir1/london.geojson
./manchester.geojson
Затем для каждого найденного файла (от 30 до 40 во многих вложенных папках) я хочу добавить свою собственную структуру json вокруг оригинала, добавивв имени файла и извлеченный идентификатор.Точно так же:
> cat manchester.geojson
{"properties": { "id": 11.0, "borough": "Didsbury" }, "geometry": {"removed": 0} }
{"properties": { "id": 22.0, "borough": "Chorlton" }, "geometry": {"removed": 0} }
Мне бы хотелось получить следующий результат:
{"_id": 11.0, filename": "manchester.geojson", "document": {"properties": { "id": 11.0, "borough": "Didsbury" }, "geometry": {"removed": 0} }}
{"_id": 22.0, filename": "manchester.geojson", "document": {"properties": { "id": 22.0, "borough": "Chorlton" }, "geometry": {"removed": 0} }}
Самое близкое, что у меня есть, это piping к xargs и awk вот так:
> find . -type f -iregex .*geojson$ | xargs -d '\n' awk -F'[{:,]' '{print "{ \"_id\":"$7", \"file\": \""FILENAME"\", \"doc\": " $0 " }"}'
}"_id": 11.0, "file": "./manchester.geojson", "doc": { "type": "Feature", "properties": { "id": 11.0, "borough": "Didsbury" }, "geometry": {"removed": 0} }}
}"_id": 22.0, "file": "./manchester.geojson", "doc": { "type": "Feature", "properties": { "id": 22.0, "borough": "Chorlton" }, "geometry": {"removed": 0} }}
Я не знаю, что именно не так с открывающей фигурной скобкой?
Я могу получить доступ ко всем переменным, которые мне нужны, см. Этот пример:
> find . -type f -iregex .*geojson$ | xargs -d '\n' awk -F'[{:,]' '{print $7 " " FILENAME " " $0}'
11.0 ./manchester.geojson { "type": "Feature", "properties": { "id": 11.0, "borough": "Didsbury" }, "geometry": {"removed": 0} }}
22.0 ./manchester.geojson { "type": "Feature", "properties": { "id": 22.0, "borough": "Chorlton" }, "geometry": {"removed": 0} }}
Тогда, наконец, возникает вопрос об отправке каждого файла с выводом в новый файл с тем же именемно с новым расширением.Я могу отправить весь вывод множества файлов в один большой файл с простым перенаправлением, но это не то, что мне нужно.Любые идеи будут с благодарностью приняты.