Позвольте мне просто объяснить, какую задачу я пытался выполнить:
У меня есть файл A.json dict, и я хочу создать файл B.txt,
с одним ключом на строку и без кавычек вокруг ключей. я сближаюсь с
cat A.json | jq 'keys[]'
Но мне пришлось использовать cut, чтобы удалить начальные и конечные кавычки из ключей, и это сработало только потому, что они были youtube_ids и имели одинаковую длину.
Было бы здорово, если бы в jq была команда печати, которая отбрасывала лишние кавычки, которые мне не нужны.
Достаточно ли хорош вариант --raw-output
/ -r
?
jq --raw-output 'keys[]' A.json
Да, это. Я прочитал руководство и учебник и не нашел этого, поэтому
благодаря тонну.
В пятницу, 7 февраля 2014 г., в 15:25, Нико Уильямс, [email protected], написал :
Достаточно ли хорош вариант
--raw-output
/-r
?jq --raw-output 'ключи []' A.json
Ответьте на это письмо напрямую или просмотрите его на Gi tHubhttps://github.com/stedolan/jq/issues/286#issuecomment -34518439
.
Любопытно, почему --raw-output
не используется по умолчанию. Например, если я скручиваюсь, чтобы получить последний тег для репозитория GitHub, я не хочу, чтобы он был заключен в кавычки. Мне интересно, почему кто-то по умолчанию.
$ curl https://api.github.com/repos/docker/machine/releases/latest | jq -r ".tag_name"
v0.7.0
Такая обычная вещь, что я предпочел бы вариант -q
если бы действительно хотел кавычек.
@subfuzion — по умолчанию jq ожидает, что ввод будет JSON, и по умолчанию выдает JSON в качестве вывода. Это хорошо соответствует симметрии между опциями -R и -r. В конце концов, буква «j» в «jq» для JSON.
Самый полезный комментарий
Достаточно ли хорош вариант
--raw-output
/-r
?