Secara default, sebagian besar alat pencarian melihat nama file, bukan konten file. Namun, program pencarian GNU yang paling terkenal, grep , akan mencari di dalam file dengan flag yang benar. Di sini kami menunjukkan kepada Anda bagaimana Anda dapat menemukan kata tertentu dalam file di Linux.
Menggunakan grep untuk Menemukan Kata Tertentu dalam File
Secara default, grep mencari isi file serta nama filenya. Itu disertakan pada sebagian besar sistem Linux dan umumnya identik di seluruh distro. Pemrogram yang melihat isi file proyek mereka mungkin lebih suka menjalankan perintah yang berbeda, seperti ack .
Bergantung pada bagaimana file dikodekan, grep mungkin tidak selalu dapat melihat ke dalam. Tetapi untuk sebagian besar format berbasis teks, grep dapat memindai teks file untuk pola yang ditentukan.
grep -rw ‘/jalur/ke/cari/’ -e ‘pola’
- Bendera -r mengatur grep ke mode rekursif, menavigasi melalui semua direktori yang terdapat dalam direktori yang ditentukan.
- Bendera -w mencari seluruh kata yang cocok. Ini berarti bahwa “merah” hanya akan cocok dengan kata “merah” yang sebenarnya daripada rangkaian huruf apa pun yang mengandungnya, seperti ” red undant” atau “ti red .” Ini dilakukan dengan hanya mencari “merah” yang dikelilingi oleh apa yang dikenal sebagai karakter konstituen non-kata (yaitu, apa pun yang bukan huruf, angka, atau garis bawah).
- Bendera -e mengawali pola yang akan dicari. Ini mendukung ekspresi reguler secara default.
Untuk mempercepat grep, Anda dapat menggunakan tanda –exclude dan –include untuk membatasi pencarian pada jenis file tertentu. Misalnya, –exclude=’*.csv’ tidak akan mencari di dalam file apa pun dengan ekstensi .csv. –include=’*.txt’ , sebaliknya, hanya akan mencari di dalam file dengan ekstensi .txt. Bendera dapat ditambahkan segera setelah perintah grep seperti yang ditunjukkan di bawah ini:
grep –exclude = ‘*.csv’ -Rw ‘/jalur/ke/cari’ -e ‘pola’
Anda juga dapat mengecualikan direktori tertentu dengan mengikuti format di bawah ini:
grep –exclude-dir = ‘{dir1,dir2,*_old}’ -Rw ‘/jalur/ke/cari’ -e ‘pola’
Perintah ini tidak akan mencari di direktori mana pun di direktori kerja saat ini bernama dir1, dir2, atau cocok dengan pola *_old, menghilangkannya dari proses pencarian. Ini akan mengeksekusi pencarian pencocokan kata penuh rekursif yang ditentukan pada semua file lain di direktori kerja saat ini.
Bendera Menarik yang Dapat Anda Gunakan Dengan grep
Sekarang setelah Anda benar-benar mengenal grep dan cara kerjanya, berikut beberapa flag berguna yang dapat Anda lampirkan ke perintah Anda:
- -i – Membuat grep melakukan pencarian non-case-sensitive. Misalnya, mencari “Kraken” akan mengembalikan hasil saat grep menemukan kecocokan untuk “kraken” atau “kRaken”.
- -n – Tampilkan nomor baris di samping kecocokan. Ini sangat berguna untuk pemrogram atau orang yang melihat melalui file konfigurasi besar.
- -R – Seperti -r , grep akan melakukan pencarian rekursif melalui semua subfolder, tetapi bendera khusus ini akan mengikuti tautan simbolik (pintasan).
- -S – Menekan pesan kesalahan. Jika Anda mendapatkan banyak kesalahan yang mengganggu tentang file yang tidak ada, tidak dapat dibaca, atau memiliki izin yang tidak sesuai, teruskan ini sehingga grep dapat tetap menampilkan kecocokan yang ditemukannya.
Menggunakan find untuk Menemukan Kata Tertentu dalam File
Sementara sintaks perintah find lebih rumit daripada grep, beberapa lebih menyukainya.
temukan . -nama “*.php” -exec grep “pola” {} ;
Perintah ini akan menggunakan flag -exec find untuk meneruskan file yang ditemukan ke grep untuk pencarian. Dengan pengaturan sintaks yang cerdas, Anda dapat menggunakan pencarian sistem file find yang lebih cepat untuk menemukan jenis file tertentu yang ingin Anda cari di dalamnya, lalu menyalurkannya ke grep untuk mencari di dalam file.
Perhatikan bahwa find hanya melihat nama file, bukan konten. Itu sebabnya grep diperlukan untuk mencari teks dan konten file. Bendera grep normal harus beroperasi penuh dari dalam flag -exec .
Menggunakan ack untuk Menemukan Kata Tertentu dalam File
Perintah ack kemungkinan merupakan alat pencarian tercepat, tetapi tidak sepopuler grep . Perintah di bawah ini akan mencari di dalam direktori saat ini.
ack ‘pola’
Jika Anda ingin mencari di dalam file atau direktori tertentu, Anda dapat menambahkan file tersebut atau nama path yang memenuhi syarat ke pencarian Anda.
ack ‘pola’ / path / ke / file.txt
Ingin GUI? Gunakan Lele
Jika Anda alergi terhadap terminal, semua distro Linux populer menawarkan Catfish, aplikasi GUI serbaguna yang memungkinkan Anda mencari file dan kontennya untuk string tertentu. Ini tidak semaju perintah yang dibahas di sini, tetapi ini memberikan layanan yang berharga bagi orang-orang yang lebih memilih antarmuka grafis.
Untuk mencari konten file untuk kata tertentu, klik menu di pojok kanan atas Catfish dan klik “Cari konten file”.
Setelah Anda menyiapkannya, ketik apa yang ingin Anda cari di bilah atas dan tekan Enter . Itu dia!
Pertanyaan yang Sering Diajukan
Bagaimana cara menghentikan pencarian grep sebelum selesai?
Untuk menghentikan proses yang sedang berlangsung di terminal Anda, cukup tekan Ctrl + C pada keyboard Anda. Ini mengirimkan sinyal untuk menghentikan proses yang sedang berjalan. Itu juga mengapa Anda tidak dapat menggunakan pintasan salin/tempel normal dari dalam emulator terminal.
Apakah ada pengelola file yang mencari konten file?
Jika Anda menggunakan lingkungan desktop KDE Plasma, pengelola file bawaannya (Dolphin) sudah memiliki kemampuan ini. Saat Anda mengeklik tombol pencarian untuk mencari file, ada opsi untuk memilih antara nama file dan konten file di bawah bilah pencarian.
Cukup klik “Konten” jika Anda ingin mencari kata di dalam file. Itu tidak akan semaju menggunakan grep, tetapi itu berhasil.
Apakah ada kegunaan lain untuk grep?
Grep bukan hanya untuk mencari sistem file Anda! Yang cukup menarik, Anda dapat mem-pipe-nya melalui hampir semua perintah untuk mencari melalui outputnya alih-alih harus menemukan sendiri sesuatu secara manual.
Grep dapat digunakan untuk memfilter output perintah untuk menunjukkan kepada Anda hal-hal yang lebih relevan bagi Anda. Cukup bereksperimen dengannya dan pada akhirnya Anda akan menguasai seni mendiagnosis dan mengenal komputer Anda!
Semua tangkapan layar oleh Miguel Leiva-Gomez.