Perintah JQ di Linux dengan contoh

Perintah JQ di Linux dengan contoh

JSON adalah format perwakilan data yang digunakan untuk menyimpan dan memindahkan data antara lapisan pelbagai aplikasi; Ia menyimpan data dalam kunci: pasangan nilai.

Sintaks JSON berasal dari JavaScript tetapi ia sendiri adalah bahasa yang bebas. Ia serasi dengan banyak bahasa pengaturcaraan; Bahasa -bahasa ini termasuk kod yang boleh digunakan untuk mengintegrasikan JSON ke dalam program; Tetapi malangnya, kita tidak boleh bekerjasama dengan JSON secara langsung di Linux Shell kerana ia tidak dapat mentafsirnya. Untuk bekerjasama dengan JSON di Linux Shell, kami menggunakan campuran alat seperti JQ dan Sed.

Catatan ini akan mengajar kita untuk menggunakan arahan JQ untuk memanipulasi dan bekerja dengan data JSON dalam shell linux.

Cara Memasang Perintah JQ

Perintah JQ tidak tersedia dalam beberapa pengagihan Linux secara lalai; Ia perlu dimuat turun ke dalam sistem sebelum ia boleh digunakan di terminal; Anda boleh memuat turun arahan JQ seperti pakej lain pada sistem anda. Pada Ubuntu 20.04 Gunakan arahan yang diberikan di bawah untuk memasang utiliti JQ:

sudo apt memasang jq  

Cukup ganti APT dengan pengurus pakej sistem anda jika anda menjalankan pengedaran selain Ubuntu.

Jika anda menjalankan pengedaran seperti CentOS 8 yang sudah mempunyai JQ secara lalai maka anda akan mendapat output yang serupa dengan ini:

sudo dnf memasang jq  

Sintaks

Sekarang kita boleh mula menggunakan arahan JQ kerana ia telah berjaya dipasang pada sistem kami, tetapi pertama, mari kita lihat sintaks perintah JQ:

JQ [OPTION] [FILE ...] JQ [OPTION] --Args [Strings ...] JQ [OPTION] --JSONArgs [JSON_TEXTS ...] 

Perintah JQ boleh digunakan dalam pelbagai cara; Ia boleh digunakan secara langsung pada fail JSON dan juga boleh digabungkan dengan beberapa arahan lain untuk mentafsirkan data JSON. Perintah JQ boleh digunakan dengan penapis yang berbeza seperti "."," | ",", " atau ".[] " Penapis untuk mengatur data JSON.

Perintah JQ juga mengambil pilihan yang berbeza seperti argumen seperti --tab, --aliran, --indent n, --tidak terkawal, dan juga -L Pilihan direktori. Sintaks perintah JQ mungkin kelihatan rumit pada mulanya tetapi anda akan mengenali itu setelah anda membaca keseluruhan artikel.

Cara Mengatur Data JSON Menggunakan Perintah JQ

Ciri penapis arahan JQ yang paling mudah dan paling kerap digunakan. Mereka digunakan untuk mengatur dan menyenaraikan data JSON semasa mencetaknya ke output standard.

  • Dalam contoh ini, kami mempunyai fail JSON yang dinamakan pekerja.json dan kita perlu mengeluarkan data ke output standard: "pekerja": "name": "John Brooks", "id": "003"
    1"pekerja": "name": "John Brooks", "id": "003"

  • Kita boleh menggunakan arahan CAT untuk menunjukkan data:
    pekerja kucing.json 

  • Data yang dicetak ke output standard menggunakan perintah kucing tidak teratur dan kemas. Kami dapat mengatur data ini dengan menggunakan arahan JQ bersama -sama dengan '.' Penapis:
    jq '.'Pekerja.json 

Sekarang data telah menjadi lebih teratur, berwarna -warni, dan lebih mudah difahami. Penapis ini amat diperlukan apabila mengakses data dari API; Data yang disimpan dalam API boleh menjadi sangat tidak teratur dan mengelirukan.

Cara Mengakses Harta Menggunakan Perintah JQ

The .medan penapis bersama dengan arahan JQ boleh digunakan untuk mengakses sifat objek di dalam cengkerang.

  • Sekiranya kita hanya mahu mengakses dan mencetak harta tunggal ke output standard maka kita boleh menggunakan .medan pengendali. E.g Untuk mengakses harta pekerja kita boleh menggunakan arahan ini:
    jq '.pekerja pekerja.json 

  • Kami juga boleh mengakses item yang terdapat di dalam harta benda dengan menggunakan .medan pengendali. Untuk mengakses item nama di harta pekerja yang akan kami gunakan:
    jq '.pekerja.Nama 'Pekerja.json 

Cara Mengakses Item Array Menggunakan Perintah JQ

Kami juga boleh mengakses dan mengeluarkan unsur -unsur yang terdapat dalam array dalam fail JSON dengan menggunakan .[] pengendali. Untuk contoh ini, kami akan mengubah suai fail JSON kami supaya kelihatan seperti ini:

["name": "John Brooks", "id": "003", "name": "Randy Park", "id": "053", "name": "todd kelabu", " id ":" 009 "]
1["name": "John Brooks", "id": "003", "name": "Randy Park", "id": "053", "name": "todd kelabu", " id ":" 009 "]
  1. Untuk mengeluarkan semua tatasusunan yang terdapat dalam fail JSON, kami akan menjalankan arahan yang diberikan di bawah:
    jq '.[] 'Pekerja.json 

  2. Untuk mengeluarkan hanya array kedua kita dapat mengubah suai perintah yang diberikan di atas dengan cara berikut:
    jq '.[1] 'Pekerja.json 

  3. Ingat bahawa array bermula pada 0

    Kita juga boleh mengakses sifat -sifat yang ada dalam array dengan menggunakan .pengendali medan. E.g jika kita mahu mengakses harta nama dalam array ketiga maka kita akan menjalankan perintah berikut:

    jq '.[2].Nama 'Pekerja.json 

  4. Begitu juga, untuk mengakses semua sifat nama di dalam tatasusunan kita boleh melaksanakan arahan ini:
    jq '.[].Nama 'Pekerja.json  

Kesimpulan

Perintah JQ digunakan untuk mengubah data JSON menjadi format yang lebih mudah dibaca dan mencetaknya ke output standard pada Linux. Perintah JQ dibina di sekitar penapis yang digunakan untuk mencari dan mencetak hanya data yang diperlukan dari fail JSON.

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