Perintah JQ di Linux dengan contoh

Perintah JQ di Linux dengan contoh

JSON adalah format representasi data yang digunakan untuk menyimpan dan mentransfer data antara berbagai lapisan aplikasi; itu menyimpan data dalam kunci: pasangan nilai.

Sintaks JSON berasal dari JavaScript tetapi itu sendiri adalah bahasa-independen. Ini kompatibel dengan banyak bahasa pemrograman; Bahasa -bahasa ini termasuk kode yang dapat digunakan untuk mengintegrasikan JSON ke dalam program; Namun sayangnya, kami tidak dapat bekerja dengan JSON langsung di linux shell karena tidak dapat menafsirkannya. Untuk bekerja dengan JSON di shell linux kami menggunakan campuran alat seperti JQ dan SED.

Posting ini akan mengajarkan kami untuk menggunakan perintah JQ untuk memanipulasi dan bekerja dengan data JSON di shell Linux.

Cara menginstal perintah jq

Perintah JQ tidak tersedia di beberapa distribusi Linux secara default; Itu perlu diunduh ke dalam sistem sebelum dapat digunakan di terminal; Anda dapat mengunduh perintah JQ seperti paket lain di sistem Anda. Di Ubuntu 20.04 Gunakan perintah di bawah ini untuk menginstal JQ Utility:

sudo apt install jq  

Cukup ganti tepat dengan manajer paket sistem Anda jika Anda menjalankan distribusi selain Ubuntu.

Jika Anda menjalankan distribusi seperti CentOS 8 yang sudah memiliki JQ secara default maka Anda akan mendapatkan output yang mirip dengan ini:

sudo dnf menginstal jq  

Sintaksis

Sekarang kita dapat mulai menggunakan perintah JQ karena telah berhasil diinstal pada sistem kami, tetapi pertama -tama, mari kita lihat sintaks perintah JQ:

jq [option] [file…] jq [opsi] --args [string…] jq [opsi] --jsonArgs [json_texts…] 

Perintah JQ dapat digunakan dengan berbagai cara; Ini dapat digunakan langsung pada file JSON dan juga dapat dikombinasikan dengan beberapa perintah lain untuk menafsirkan data JSON. Perintah JQ dapat digunakan dengan filter yang berbeda seperti “."," | ",", " atau “.[] " filter untuk mengatur data JSON.

Perintah JQ juga mengambil opsi berbeda sebagai argumen seperti --tab, --sungai kecil, --indentasi n, --tidak terikat, dan -L Opsi Direktori. Sintaks dari perintah JQ mungkin tampak kompleks pada awalnya tetapi Anda akan terbiasa dengan itu setelah Anda membaca seluruh artikel.

Cara mengatur data json menggunakan perintah jq

Fitur yang paling sederhana dan paling sering digunakan dari filter perintah JQ. Mereka digunakan untuk mengatur dan mencela data JSON saat mencetaknya ke output standar.

  • Dalam contoh ini, kami memiliki file json bernama karyawan.json dan kita perlu mengeluarkan data ke output standar: "pekerja": "name": "John Brooks", "id": "003"
    1"pekerja": "name": "John Brooks", "id": "003"

  • Kita dapat menggunakan perintah CAT untuk menampilkan data:
    Karyawan Kucing.json 

  • Data yang dicetak ke output standar menggunakan perintah CAT tidak terorganisir dan berantakan. Kita dapat mengatur data ini dengan menggunakan perintah jq bersama dengan '.' Saring:
    jq '.' karyawan.json 

Sekarang data menjadi jauh lebih terorganisir, penuh warna, dan lebih mudah dipahami. Filter ini sangat dibutuhkan saat mengakses data dari API; Data yang disimpan di API bisa sangat tidak terorganisir dan membingungkan.

Cara mengakses properti menggunakan perintah jq

Itu .bidang filter bersama dengan perintah jq dapat digunakan untuk mengakses properti objek di shell.

  • Jika kami hanya ingin mengakses dan mencetak satu properti ke output standar maka kami dapat menggunakan .bidang operator. E.G Untuk mengakses properti pekerja, kami dapat menggunakan perintah ini:
    jq '.Karyawan Pekerja.json 

  • Kami juga dapat mengakses item yang ada di dalam properti dengan menggunakan .bidang operator. Untuk mengakses item nama di properti pekerja yang akan kami gunakan:
    jq '.pekerja.nama 'karyawan.json 

Cara mengakses item array menggunakan perintah jq

Kami juga dapat mengakses dan mengeluarkan elemen yang ada dalam array dalam file JSON dengan menggunakan .[] operator. Untuk contoh ini kami akan memodifikasi file JSON kami sehingga terlihat seperti ini:

["name": "John Brooks", "id": "003", "name": "randy park", "id": "053", "name": "Todd Grey", " id ":" 009 "]
1["name": "John Brooks", "id": "003", "name": "randy park", "id": "053", "name": "Todd Grey", " id ":" 009 "]
  1. Untuk menghasilkan semua array yang ada dalam file JSON kami akan menjalankan perintah yang diberikan di bawah ini:
    jq '.[]' karyawan.json 

  2. Untuk menghasilkan hanya array kedua yang dapat kita modifikasi perintah yang diberikan di atas dengan cara berikut:
    jq '.[1] 'Karyawan.json 

  3. Ingatlah bahwa array dimulai 0

    Kami juga dapat mengakses properti yang ada di dalam array dengan menggunakan .operator lapangan. E.G Jika kami ingin mengakses properti nama di array ketiga maka kami akan menjalankan perintah berikut:

    jq '.[2].nama 'karyawan.json 

  4. Demikian pula, untuk mengakses semua properti nama di dalam array kita dapat menjalankan perintah ini:
    jq '.[].nama 'karyawan.json  

Kesimpulan

Perintah JQ digunakan untuk mengubah data JSON menjadi format yang lebih mudah dibaca dan mencetaknya ke output standar di Linux. Perintah JQ dibangun di sekitar filter yang digunakan untuk menemukan dan mencetak hanya data yang diperlukan dari file JSON.

Dalam panduan cara ini, kami telah belajar menggunakan perintah JQ untuk mengatur dan memfilter data JSON.