Anda dapat menggunakan grep
alat untuk mencari secara rekursif folder saat ini dengan -r
parameter, seperti:
grep -r "pattern" .
Catatan: -r
- Sub direktori pencarian secara rekursif.
Untuk mencari di dalam file tertentu, Anda dapat menggunakan sintaks globbing seperti:
grep "class foo" **/*.c
Catatan: Dengan menggunakan opsi globbing ( **
), ia memindai semua file secara rekursif dengan ekstensi atau pola tertentu. Untuk mengaktifkan sintaks ini, jalankan: shopt -s globstar
. Anda juga dapat menggunakan **/*.*
untuk semua file (tidak termasuk tersembunyi dan tanpa ekstensi) atau pola lainnya.
Jika Anda memiliki kesalahan karena argumen Anda terlalu panjang, pertimbangkan untuk mempersempit pencarian Anda, atau gunakan find
sintaksis seperti:
find . -name "*.php" -execdir grep -nH --color=auto foo {} ';'
Atau gunakan ripgrep
.
Jika Anda bekerja pada proyek-proyek yang lebih besar atau file-file besar, Anda harus menggunakan ripgrep
sebaliknya, seperti:
rg "pattern" .
Periksa dokumen, langkah-langkah instalasi atau kode sumber pada halaman proyek GitHub .
Ini jauh lebih cepat daripada alat lain seperti GNU / BSD grep
, ucg
, ag
, sift
, ack
, pt
atau serupa, karena dibangun di atas mesin regex Rust ini yang menggunakan automata terbatas, SIMD dan optimasi literal agresif untuk membuat pencarian sangat cepat.
Ini mendukung pola abaikan yang ditentukan dalam .gitignore
file, sehingga jalur file tunggal dapat dicocokkan dengan beberapa pola glob secara bersamaan.
Anda dapat menggunakan parameter umum seperti:
-i
- Pencarian tidak sensitif.
-I
- Abaikan file biner.
-w
- Cari seluruh kata (berlawanan dengan pencocokan sebagian kata).
-n
- Tampilkan garis pertandingan Anda.
-C
/ --context
(eg -C5
) - Meningkatkan konteks, sehingga Anda melihat kode di sekitarnya.
--color=auto
- Tandai teks yang cocok.
-H
- Menampilkan nama file tempat teks ditemukan.
-c
- Menampilkan hitungan garis yang cocok. Dapat dikombinasikan dengan -H
.