Использование jq для создания полей списка, разделенных запятыми, в массиве JSON

«Белая мгла» — это особенность некоторых объединенных файловых систем.

Если у вас есть файловая иерархия, на которую накладывается объединенное монтирование, и файл существует в обоих слоях результирующей видимой файловой иерархии, можно использовать «белую полосу» для удаления файла из верхнего уровня при сохранении его в нижний слой (как с использованием Tipp -ex ).

Утилита rmможет удалить белое пятно и снова открыть файл (, так как он никогда не удалялся из файловой системы нижнего уровня ).

0
17.09.2019, 12:39
2 ответа

Вы ищете

jq -r '.hardware | join(", ")'

Синтаксическая ошибка из опубликованной вами версии заключается в том, что открытие (не имеет соответствующего ), но в любом случае joinнужно указать все значения сразу, поэтому .hardwareлучше, чем .hardware[](, который пропустит их по одному ).

4
28.01.2020, 02:22

Ваше выражение jqсодержит несбалансированные круглые скобки. Функция join()также нуждается в массиве, а не в отдельных значениях. (используйте .hardware | join(", "), а не.hardware[] | join(", ")).

Если вы хотите правильно отформатировать вывод CSV, вы можете использовать выражение.hardware | @csv:

$ jq -r '.hardware | @csv' file.json
"abc","def","ghi"
2
28.01.2020, 02:22

Теги

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