File masukan saya terlihat seperti ini:
{
"login": "dmaxfield",
"id": 7449977,
...
}
{
"login": "dmaxfield",
"id": 7449977,
...
}
Saya bisa mendapatkan semua nama login dengan ini: cat members | jq '.[].login'
tetapi saya belum bisa memecahkan sintaks untuk mendapatkan login dan id?
Jawaban:
Anda dapat menggunakan
jq '.[] | .login, .id'
untuk mendapatkan setiap login diikuti dengan id-nya.sumber
jq
berfungsi baik dengan urutan objek - tidak perlu pembungkus array. The...
string dan trailing terakhir penghapusan koma kebutuhan, tapi saya menganggap bahwa untuk tersirat.jq '.[] | {login, id}'
login.name
?jq '.[] | {login.name, id}'
sepertinya berhasil, tolong, apa cara yang benar?jq '.[] | {name: .login.name, id}'
Ini bekerja untuk saya:
sumber
Untuk memilih nilai yang diindentasi ke tingkat yang berbeda (yaitu tingkat pertama dan kedua), Anda dapat menggunakan yang berikut ini:
sumber
Berikan satu contoh lagi di sini (jq-1.6):
Telusuri larik dan pilih bidang dari elemen objek dan bidang objek di objek itu
Tanpa data contoh:
.[]
: berjalan melalui sebuah array{id, name: .private_info.name}
: ambil .id dan .private_info.name dan bungkus menjadi objek dengan nama kolom "id" dan "name"sumber