Мне нужно удалить сразу несколько ключей из некоторого JSON (используя jq), и я пытаюсь узнать, есть ли лучший способ сделать это, чем называть карту и del каждый раз , Вот мой ввод данных:Удаление нескольких ключей одновременно с помощью jq
test.json
[
{
"label": "US : USA : English",
"Country": "USA",
"region": "US",
"Language": "English",
"locale": "en",
"currency": "USD",
"number": "USD"
},
{
"label": "AU : Australia : English",
"Country": "Australia",
"region": "AU",
"Language": "English",
"locale": "en",
"currency": "AUD",
"number": "AUD"
},
{
"label": "CA : Canada : English",
"Country": "Canada",
"region": "CA",
"Language": "English",
"locale": "en",
"currency": "CAD",
"number": "CAD"
}
]
Для каждого элемента, я хочу, чтобы удалить номер, язык и ключи Country. Я могу сделать это с помощью этой команды:
$ cat test.json | jq 'map(del(.Country)) | map(del(.number)) | map(del(.Language))'
Это прекрасно работает, и я получаю желаемый результат:
[
{
"label": "US : USA : English",
"region": "US",
"locale": "en",
"currency": "USD"
},
{
"label": "AU : Australia : English",
"region": "AU",
"locale": "en",
"currency": "AUD"
},
{
"label": "CA : Canada : English",
"region": "CA",
"locale": "en",
"currency": "CAD"
}
]
Однако, я пытаюсь понять, если есть JQ способ задания мультипликатора ярлыки для удаления, поэтому мне не нужно иметь несколько директив map(del())
?
Заранее благодарим за любую помощь!
'delpaths' определенно менее волшебный, я не слышал об этом. Благодаря! –