2015-05-13 2 views
1

Я использую JQ на машине окна и у меня есть следующие данные:JQ: преобразование JSON в ЦВ на Windows,

{"a":"Person","birthDay":"12","deathDay":"15", ...} 
{"a":"Person","birthDay":"13","deathDay":"16", ...} 
... 

И я хотел бы иметь вкладку отделенный формат файла:

Person 12 15 
Person 13 16 

Я могу получить значения с помощью «.a» или «.birhtDay». Но как я могу получить все значения и отделить их через вкладку?

С наилучшими пожеланиями, Snafu

ответ

3

TSV, к счастью, более простой формат по сравнению с CSV. Предполагая, что значения не будут иметь новых строк или вкладок, вам просто нужно создать каждую из строк данных, которые вы хотите в файле, и распечатать их, разделив значения по вкладкам. Просто убедитесь, что вы используете исходный вывод -r.

[ .a, .birthDay, .deathDay ] | join("\t") 
+0

большое спасибо! (надеюсь, что ему разрешено писать никакие значения с добавлением комментариев) – SnafuBernd

+0

FYI: если использовать его в окнах в CMD.exe с цитируемой программой, не забывайте избегать двойных кавычек в программе: «[.a, .birthDay, .deathDay] | join (\ "\ t \") " – SnafuBernd

+0

Или вы могли бы просто использовать одинарные кавычки для фильтра –

1

Последние версии JQ (например 1.5rc1 - доступные через https://github.com/stedolan/jq/releases) включают в себя фильтр с именем @tsv.

15 апреля jq был усилен, так что @tsv будет выдавать действительный tsv (одна строка для допустимого массива), например. если входная строка содержит вкладки, новые строки или NUL.

Смежные вопросы