JQ: Как добавить буквальное значение для вывода - PullRequest
0 голосов
/ 25 ноября 2018

Спасибо, что посмотрели на это со мной.

Я использую JQ для манипулирования файлами JSON.

Началось с того, что работает:

jq ".[]|{name:.name,type:.type}" r.json

Нужно расширить, чтобы включить «acct» и буквальное значение «acct1» в результирующий json.

Я знаю, что могу сделать это с двумя строками кода

jq '.[]+{acct:"acct1"}' r.json > r2.json
jq "{acct:.acct,name:.name,type:.type}" r2.json > r.json

Есть ли способ сделать это встроенным с одной строкой кода - например, это не работает?

jq '.[]|{acct:"acct1",name:.name,type:.type}' r.json

Спасибо, что посмотрели на эту проблему

Ответы [ 2 ]

0 голосов
/ 25 ноября 2018

Более экономичным подходом к достижению того, что, как я понимаю, вы хотите, было бы:

jq '.[]|{name,type, acct:"acct1"}' r.json

Кстати, первый фильтр в Q (.[]|{name:.name,type:.type}) может быть сокращен до:

.[]|{name,type}
0 голосов
/ 25 ноября 2018

Ответ, который я искал, был

jq '.[]+{acct:"acct1"}|{acct:.acct,name:.name,type:.type}" r2.json > r.json

Просто нужно было узнать, как это работает:)

...