ile birden çok anahtarı bir kerede silme Bazı JSON'lardan (jq kullanarak) aynı anda birden çok anahtarı silmem gerekiyor ve bunu her zaman daha harita ve del olarak aramaktan daha iyi bir yol olup olmadığını öğrenmeye çalışıyorum. . İşte benim giriş veri: Her öğe içinJpe
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"
}
]
, numarayı, Dil ve Ülke anahtarlarını kaldırmak istiyor. Bu komut ile bunu yapabilir:
$ cat test.json | jq 'map(del(.Country)) | map(del(.number)) | map(del(.Language))'
çalışıyor ve ben istenen çıktıyı almak: Ancak
[
{
"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"
}
]
, ben birden belirterek bir jq yolu varsa anlamaya çalışıyorum etiketleri silmek için birden fazla map(del())
direktifine sahip olmak zorunda değilim?
Yardımlarınız için şimdiden teşekkür ederiz!
'delpaths' kesinlikle daha az büyülü, ben bunu duymamıştım. Teşekkürler! –