Sistem operasi Linux memungkinkan Anda menelusuri struktur direktori dan file direktori untuk pencocokan string teks tertentu. Alat umum yang membantu kami mencapai penelusuran direktori ini adalah grep (cetakan ekspresi reguler global ) memerintah. Penggunaan ekspresi reguler grep memungkinkan untuk memulai pencarian pola string apa pun menuju output tekstual yang cocok pada baris perintah.
[ Anda mungkin juga menyukai:Ripgrep – Alat Pencarian Baris Perintah Tercepat untuk Linux ]
Namun, kelemahan grep dalam kecepatan dan fitur non-fleksibel. Di sinilah ack alat mengambil alih. Ini memberikan pencarian cepat yang meluas ke pencarian direktori kode sumber sambil memberi pengguna Linux fleksibilitas untuk mengecualikan keluaran tertentu dari hasil pencarian.
Cara Menginstal Ack di Linux
Setiap platform yang didukung Perl dapat mengakomodasi ack alat pencarian. Kami menginstalnya dengan merujuk paket utamanya, ack-grep .
$ sudo apt-get install ack-grep [On Debian, Ubuntu and Mint] $ sudo yum install ack-grep [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux] $ sudo emerge -a sys-apps/ack-grep [On Gentoo Linux] $ sudo pacman -S ack-grep [On Arch Linux] $ sudo zypper install ack-grep [On OpenSUSE]
Penelusuran Direktori Ack
Sejak kembali dikaitkan dengan berorientasi pada kode sumber, kita dapat mendemonstrasikan kecakapan pencarian pola string melalui direktori kode sumber. Github adalah sumber terkenal untuk ribuan direktori kode sumber. Direktori kode sumber proyek yang ideal untuk panduan artikel ini adalah proyek neovim.
Instal Git di Linux
$ sudo apt-get install git [On Debian, Ubuntu and Mint] $ sudo yum install git [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux] $ sudo emerge -a sys-apps/git [On Gentoo Linux] $ sudo pacman -S git [On Arch Linux] $ sudo zypper install git [On OpenSUSE]
Proyek Klon Neovim
Berbagai jenis file yang berbeda dalam proyek editor teks neovim ini diperlukan untuk panduan artikel kami.
$ git clone https://github.com/neovim/neovim.git
Navigasikan ke neovim direktori kloning untuk memulai tutorial kami.
$ cd neovim && ls
Direktori tingkat atas yang terdaftar memperlihatkan file penurunan harga (.md)
, file teks (.txt)
, dan file YAML.
Menerapkan Perintah Pencarian Ack Sederhana
Karena sebagian besar kueri penelusuran dari jendela terminal Linux menyebabkan pengguliran tak terkendali karena keluaran tak terbatas, kami dapat menyalurkan hasil penelusuran ini ke “kurang ” untuk contoh hasil yang melebihi ukuran jendela terminal normal.
$ echo '--pager=less -RFX' >> ~/.ackrc
ack di atas perintah konfigurasi secara cerdas menangani keluaran hasil yang melimpah.
Menemukan Jumlah Total File dalam Direktori
Contoh perintah pertama ini membantu kita membedakan efisiensi logis ack telusuri dari grep Cari. Melalui grep , kita dapat mengetahui jumlah total file pada neovim yang dikloning proyek melalui perintah berikut:
$ find . | wc -l
Ak hanya akan menghitung file yang dirasa relevan secara logika, sehingga outputnya akan berbeda.
$ ack -f | wc -l
Di atas 7% (2984-2772 ) file yang diabaikan diabaikan dari semua ack kueri penelusuran.
Menemukan Variasi Pola String Tertentu dari Direktori
Mari kita coba mengkueri kemunculan sesaat dari pola string “membatasi ”.
$ ack restrict
Output di atas menunjuk ke nomor baris yang tepat dalam file yang berisi kecocokan pola string. Hasil pola layar keluaran “membatasi ” juga merupakan bagian dari kata-kata seperti dibatasi dan pembatasan .
Menemukan Kata Pola String Tertentu dari Direktori
Jika Anda tidak tertarik pada hasil penelusuran yang muncul sebagai variasi tetapi sebagai kata yang lengkap, Anda perlu menerapkan pola string penelusuran secara berbeda.
$ ack -w restrict
Seperti yang Anda lihat, pola pencarian string mencari “membatasi ” sebagai kata yang lengkap dan bukan bagian dari kemunculan kata lainnya.
Menemukan Pola String Tertentu dari Jenis File Tertentu
Mungkin Anda ingin penelusuran pola string Anda menargetkan file tertentu seperti Python (--python)
file, c (--c)
file, vim (--vim)
file atau jenis file lainnya, kueri pola string Anda harus merujuk pada jenis file yang Anda cari.
$ ack -w --python restrict
Output perintah di atas menunjukkan kemunculan kata “membatasi ” pada baris 110 di dalam file Python “src/clint.py ”.
Menemukan Kemunculan Total Pencarian Pola String di Setiap File
Sejak kloning neovim direktori yang kami gunakan memiliki jenis file yang berbeda, perintah ini menghitung kemunculan pencarian pola string tertentu (membatasi ) di setiap jenis file ini.
$ ack -c restrict
Mengontrol Output Pencarian Pola String
Output perintah di atas mencakup file dengan pola string nol yang cocok untuk input string yang ditentukan. Untuk menghindarinya, perintah berikut mencetak total baris file yang cocok untuk input pola string yang ditentukan.
$ ack -ch restrict
Kita dapat membuat output di atas lebih kecil dan akurat dengan meminta output pencarian untuk hanya mempertimbangkan kata-kata lengkap dan bukan varian kata.
$ ack -ch -w restrict
Kami juga dapat mempersempit hasil perintah di atas untuk hanya mempertimbangkan file Python:
$ ack -ch -w --python restrict
Kami juga dapat menggunakan waktu perintah untuk memantau kecepatan pencarian kami:
$ time ack -ch restrict
Dengan lebih spesifik dalam kriteria pola pencarian kami, kami akan mendapatkan hasil yang lebih cepat seperti yang ditunjukkan di bawah ini dibandingkan dengan hasil di atas.
$ time ack -ch -w --python restrict
Kami juga dapat menampilkan nama file aktual yang cocok dengan pola pencarian.
$ ack -f --python
Pola pencarian ack juga dapat menargetkan konvensi penamaan file. C Any apa saja file dengan “log ” dapat dicocokkan dengan perintah berikut:
$ ack -g log --cc
ack alat pencarian sangat fleksibel ketika ditangani di bawah direktori kode sumber. Anda masih dapat mengadopsi penggunaannya ke file di dalam lingkungan Linux Anda. Ini dapat diperpanjang dan cepat. Gunakan man ack
perintah untuk menemukan lebih banyak opsi untuk menjelajahi alat yang cepat dan ringan ini.