Как преобразовать JSON файл в другой формат

Вы можете попробовать опцию grep, которая сообщает «конец параметров»

grep -- <string> <filename>

Это сообщит grep игнорировать следующие дефисы как параметры и передавать их как следующие элементы в командной строке

0
18.11.2018, 16:06
2 ответа

Другое решение с использованием jq :

jq -j '.properties.id, ",",
    .properties.Name, ",\"POLYGON((",
    (.geometry.coordinates | flatten | map(tostring) | join(",")), "))\"\n"' < file.json

Вывод:

01,ABC,"POLYGON((103.770389070496,1.29248785539602,103.770414424306,1.29257488210121,103.770146603491,1.29263278185594,103.770073030489,1.29264869682434,103.769991818022,1.29273960058215))"

Изменить: скрипка 1 , скрипка 2

2
28.01.2020, 02:15

Для обработки JSON используйте инструмент JSON, например. jq(обычно это пакет в вашем дистрибутиве):

jq -j '.properties.id, ",", .([ .geometry.coordinates | recurse | numbers | tostring] | join(",")), "))\n"' < your_file

делает то, что вы хотите, для одной строки. Возможно, вам придется передать каждую строку отдельно, в зависимости от того, как на самом деле выглядит ваш файл.

4
28.01.2020, 02:15

Теги

Похожие вопросы