GNU/Linux >> Belajar Linux >  >> Linux

Menggunakan Perintah ripgrep (rg) di Linux

ripgrep adalah hasil yang sangat baik dari upaya RIIR (menulis ulang di Rust) yang terjadi di komunitas open source. Ini dimaksudkan untuk menjadi pengganti yang unggul untuk perintah grep klasik.

Sintaks untuk menggunakan ripgrep adalah sebagai berikut:

rg <pattern> [files/directories]

Dengan ripgrep, tidak perlu menyebutkan nama file. Ketika nama file tidak tersedia, semua file akan dicari. Ini sangat membantu jika Anda tidak tahu file mana yang berisi pola yang Anda cari.

Anda juga dapat menggunakan grep untuk mencari di semua file tetapi ripgrep melakukannya tanpa usaha tambahan.

Apa itu ripgrep?

ripgrep adalah alat pencocokan pola regex rekursif yang mempertimbangkan gitignore Anda. Jika Anda memiliki file, ekstensi, atau direktori tertentu di gitignore Anda, ripgrep akan mengabaikannya, sehingga mempercepat waktu eksekusi.

Beberapa fitur yang membuat ripgrep menonjol adalah sebagai berikut:

  • Menelusuri pola secara rekursif dalam direktori
  • Penyorotan warna pada keluaran
  • Mendukung berbagai macam format encoding seperti UTF-8, SHIFT_JIS
  • Kemampuan untuk mencari dalam file zip terkompresi
  • Mengabaikan file tersembunyi secara default dan menggunakan file gitignore Anda untuk pencarian yang lebih cepat

Anda dapat menganggapnya sebagai grep, tetapi terutama ditujukan untuk mencari file/konten file alih-alih aliran byte mentah yang ditangani grep.

Instal ripgrep

Meskipun grep sudah diinstal sebelumnya di sebagian besar sistem Linux, ripgrep tidak memiliki hak istimewa itu.

Namun, ini tersedia di repositori semua distribusi Linux utama, dan Anda dapat menggunakan manajer paket untuk menginstalnya.

Jika Anda pengguna Arch Linux, Anda sudah tahu cara menginstal paket :p, tapi tetap saja, inilah perintah yang harus Anda gunakan:

pacman -S ripgrep

Pengguna Gentoo dapat menginstal ripgrep dengan perintah berikut:

emerge sys-apps/ripgrep

Jika Anda menggunakan Fedora atau Red Hat, angkat topi Anda sedikit saat mengetik perintah ini di terminal Anda:

sudo dnf install ripgrep

pengguna openSUSE (15.1 dan yang lebih baru) harus menggunakan perintah berikut di terminal mereka:

sudo zypper install ripgrep

Untuk pengguna yang menggunakan Debian Buster (v10) atau yang lebih baru, gunakan apt. Ubuntu Cosmic Sotong (18.10) atau yang lebih baru juga dapat menggunakan repositori resmi distribusi.

sudo apt install ripgrep

Menggunakan perintah ripgrep

Jika Anda terbiasa dengan penggunaan perintah grep, Anda akan menemukan bahwa ripgrep bekerja dengan cara yang sama. Anda menyediakannya dengan string pencarian dan nama file, dan itu akan mencari file dan menunjukkan di mana string input cocok dengan konten file.

Untuk tutorial ini, saya telah mengkloning repositori proyek debu, dan saya akan menjalankan perintah di dalam repositori kloning.

Penelusuran dasar

Contoh pencarian deskripsi kata dalam file Cargo.html:

$ rg description Cargo.toml
3:description = "A more intuitive version of du"
53:extended-description = """\

Seperti yang diharapkan, alat ripgrep mencari di file yang saya tentukan dan menampilkan file dengan teks yang cocok dan nomor baris.

Jika Anda menentukan beberapa file untuk dicari (jika Anda tidak menentukan file apa pun, itu akan mencari semua), ripgrep juga akan menentukan nama file yang isinya cocok.

Atau, Anda juga dapat menggunakan opsi '--file', yang berisi pola yang ingin Anda cocokkan. Saat Anda secara teratur mencari satu set pola untuk dicocokkan, Anda dapat menyimpannya dalam file dan menentukannya menggunakan opsi '--file'.

Terkadang, bagus untuk memiliki konteks baris yang cocok, terutama saat mencari di repositori kode. Opsi '-C' atau '--context' membantu di sini. Opsi ini menerima nilai numerik dan menunjukkan garis sebelum dan sesudah pertandingan.

Ada kalanya Anda hanya ingin melihat beberapa baris di atas, termasuk baris yang cocok. Terkadang, Anda hanya menginginkan garis di bawah, termasuk yang cocok.

Anda dapat menggunakan opsi '-A', kependekan dari '--after-context', dan nilai numerik untuk menunjukkan garis setelah setiap kecocokan.

Dan untuk baris sebelum setiap kecocokan, Anda dapat menggunakan opsi '-B,' kependekan dari '--before-context', bersama dengan nilai numerik.

Kolom

Ada beberapa opsi terkait kolom yang disediakan ripgrep.

Anda akan menghargai tanda '--column' jika Anda adalah pengguna vim. Ini mencetak 'line:column' dari teks yang cocok dalam file.

Opsi lain yang terkait dengan kolom adalah '-M' atau '--max-columns', yang mengambil nilai numerik untuk jumlah kolom maksimum. Jika kolom baris yang cocok melebihi, ini akan memberi tahu Anda bahwa baris tertentu dihilangkan agar tidak dikeluarkan ke terminal.

Lain-lain

Ada beberapa opsi yang dapat Anda gunakan dengan ripgrep.

Anda dapat menggunakan opsi '-s' atau '--case-sensitive' untuk mencocokkan teks dengan sensitivitas huruf besar/kecil.

Jika Anda ingin agar huruf besar tidak peka, Anda dapat menggunakan tanda '-i' atau '--ignore-case'.

Jika Anda memiliki basis kode yang besar, Anda dapat menggunakan beberapa utas untuk pencocokan pola. Anda dapat menentukan utas secara manual menggunakan opsi '-j' atau '--utas'; ia menerima nilai numerik.

$ rg -j 4 TODO

Ada kalanya Anda ingin mengecualikan pola dari hasil pencarian. Untuk melakukannya, Anda dapat menggunakan '-v' atau '--invert-match' untuk mengecualikan pola yang ditentukan.

ripgrep dapat mencari teks dalam arsip terkompresi (jika file terkompresi adalah file teks) menggunakan tanda '-z' atau '--search-zip'. Bendera ini biasanya disertai dengan tanda '-a' yang memperlakukan file biner sebagai file teks.

Kesimpulan

ripgrep adalah alat luar biasa yang dapat Anda manfaatkan, terutama sebagai programmer di lingkungan seperti UNIX.

ripgrep, meskipun namanya mungkin menyarankan sebaliknya, tidak dimaksudkan untuk menggantikan grep karena berperilaku berbeda. Namun kedua alat tersebut tetap membantu; itu tergantung pada kasus penggunaan Anda.


Linux
  1. Menggunakan Perintah Tidur Linux di Skrip Bash

  2. Cara Reboot Linux Menggunakan Command Line

  3. Pindahkan folder di Linux menggunakan perintah mv

  1. Perintah mv Linux

  2. Linux du perintah

  3. Perintah ip Linux

  1. Perintah cd Linux

  2. Bagaimana cara mematikan proses di Linux menggunakan perintah?

  3. 5 Contoh Perintah Fuser Linux Praktis