Skip to content

Resep jq dijelaskan

Filter jq yang dipakai sehari-hari, dikelompokkan per tugas: menjangkau nilai, memfilter dan memilih, mengolah koleksi, mengubah nilai dan string, membentuk ulang menjadi objek atau array baru, memperbarui path di tempat, bercabang lewat logika, serta reduksi tingkat lanjut, ditambah flag command-line yang mengatur input dan output. Setiap baris memasangkan filter dengan hasil yang dihasilkannya.

jq adalah filter: ia membaca JSON dari stdin, menjalankan pipeline ekspresi yang dipisah pipe, dan menulis JSON ke stdout. Titik adalah nilai saat ini; semuanya dibangun di atasnya. Cara tercepat belajar adalah mengalirkan data nyata lewat resep di bawah dan memperhatikan outputnya. Jalankan sebagai jq 'filter' file.json atau curl ... | jq 'filter'.

Tabel referensi · 65 entri
65 of 65 rows
Akses
Seluruh input, dicetak cantik.
Nilai pada sebuah key, atau key bersarang.
Nilai pada key yang namanya mengandung karakter khusus.
Elemen pertama sebuah array (negatif menghitung dari akhir).
Setiap elemen array, atau setiap nilai objek, masing-masing di barisnya sendiri.
Nilai pada key, atau null, tanpa error saat key tidak ada.
Filter & seleksi
Input tidak berubah saat kondisi benar, selain itu tidak menghasilkan apa pun.
Terapkan expr ke setiap elemen array dan kumpulkan hasilnya.
Nama key yang terurut, atau nilai-nilai, dari sebuah objek sebagai array.
Panjang array atau string, atau jumlah key dalam objek.
Hanya elemen yang age-nya lebih dari 18, sebagai satu array.
Koleksi
True saat setidaknya satu, atau saat setiap, elemen truthy atau lolos filter.
True saat key k ada di objek; in menjalankan tes yang sama dari sisi key.
Elemen pertama, terakhir, atau hanya n output pertama dari f.
Nilai terkecil, atau terbesar, dalam sebuah array.
Angka dari 0 hingga n, masing-masing sebagai output tersendiri.
Array bersarang diratakan menjadi satu array datar.
True saat x muncul di suatu tempat dalam input; inside membalik perannya.
Terapkan f ke setiap nilai dari bawah ke atas, lalu bangun ulang seluruh input.
Transformasi
Array yang hanya berisi field price dari setiap elemen.
Jumlah dari array angka, atau gabungan dari array objek.
Mengubah nilai menjadi string, atau string numerik menjadi angka.
Enkode input sebagai string JSON atau base64.
String dalam huruf kecil.
String
String dengan nilai expr disisipkan ke dalam teks.
Ganti setiap kecocokan pola, atau hanya yang pertama, dengan s.
Pecah string menjadi array pada pemisah, atau gabungkan array menjadi satu string.
Uji string terhadap pola, atau keluarkan kecocokan dan named capture.
Buang awalan, atau akhiran, hanya jika memang ada.
True atau false: string diawali, atau diakhiri, dengan s.
String dalam huruf besar.
Array yang dienkode sebagai baris CSV, baris TSV, atau argumen shell yang dikutip.
Bentuk ulang
Objek baru dengan hanya field id dan name dari input.
Array berisi name dari setiap item.
Array objek {key, value} dari sebuah objek.
Objek yang dibangun dari array objek {key, value}.
Elemen dikelompokkan ke subarray menurut field cat.
Urutkan menurut field, atau simpan satu elemen per id yang berbeda.
Update & path
Perbarui nilai pada key dengan menjalankan f padanya.
Timpa nilai pada key dengan v.
Tambahkan n ke nilai count, di tempat.
Baca, tulis, atau hapus nilai pada path yang diberikan sebagai array.
Kontrol & logika
a saat c benar, b sebaliknya, dengan elif untuk cabang tambahan.
Jalankan f, dan jalankan g dengan pesan error sebagai gantinya saat f gagal.
Berhenti dengan error yang membawa msg, kecuali jika ditangkap try.
Tidak ada output sama sekali; cabang itu lenyap dari hasil.
Gabungkan nilai true dan false, atau balikkan satu.
Lanjutan
Lipat seluruh array menjadi satu total berjalan.
Seperti reduce, tetapi memancarkan state setelah setiap langkah, bukan hanya yang terakhir.
Input berikutnya, atau semua input tersisa, ditarik di tengah filter.
Nilai sebagai teks JSON-nya, atau teks JSON diurai kembali menjadi nilai.
Teks base64 didekode kembali menjadi string asli.
Penugasan jauh di dalam struktur, membuat level yang hilang di sepanjang jalan.
a jika bukan null atau false, selain itu b (nilai bawaan).
Input dengan satu key dihapus.
Setiap path dalam input sebagai array key, dari atas ke bawah.
Variabel & CLI
Definisikan $name sebagai string shell, bisa dipakai di dalam filter.
Definisikan $name dari JSON mentah, untuk angka, boolean, array, atau objek.
Definisikan $name sebagai seluruh isi sebuah file JSON.
Cetak hasil string mentah, tanpa kutip atau escape.
Cetak setiap hasil ringkas dalam satu baris, tanpa indentasi.
Jalankan filter sekali pada null, untuk membangun output dari nol.
Baca seluruh input ke satu array sebelum filter berjalan.
Setel exit code dari output terakhir, agar skrip shell bisa menguji hasilnya.
Nilai variabel lingkungan, dibaca di dalam filter.