Anda dapat menggunakan ack. Ini seperti grep untuk kode sumber. Anda dapat memindai seluruh sistem file Anda dengannya.
Lakukan saja:
ack 'text-to-find-here'
Di direktori akar Anda.
Anda juga dapat menggunakan ekspresi reguler, menentukan tipe file, dll.
PEMBARUAN
Saya baru saja menemukan The Silver Searcher, yang seperti ack tetapi 3-5x lebih cepat darinya dan bahkan mengabaikan pola dari .gitignore
berkas.
Lakukan hal berikut:
grep -rnw '/path/to/somewhere/' -e 'pattern'
-r
atau-R
bersifat rekursif,-n
adalah nomor baris, dan-w
berarti mencocokkan seluruh kata.-l
(huruf kecil L) dapat ditambahkan hanya untuk memberikan nama file dari file yang cocok.-e
adalah pola yang digunakan selama pencarian
Bersamaan dengan ini, --exclude
, --include
, --exclude-dir
bendera dapat digunakan untuk pencarian yang efisien:
- Ini hanya akan mencari melalui file-file yang memiliki ekstensi .c atau .h:
grep --include=\*.{c,h} -rnw '/path/to/somewhere/' -e "pattern"
- Ini akan mengecualikan pencarian semua file yang diakhiri dengan ekstensi .o:
grep --exclude=\*.o -rnw '/path/to/somewhere/' -e "pattern"
- Untuk direktori, satu atau beberapa direktori dapat dikecualikan menggunakan
--exclude-dir
parameter. Misalnya, ini akan mengecualikan dirs dir1/, dir2/ dan semuanya cocok dengan *.dst/:
grep --exclude-dir={dir1,dir2,*.dst} -rnw '/path/to/somewhere/' -e "pattern"
Ini bekerja sangat baik bagi saya, untuk mencapai tujuan yang hampir sama seperti tujuan Anda.
Untuk opsi lainnya, lihat man grep
.
Gunakan grep -ilR
:
grep -Ril "text-to-find-here" /
i
singkatan dari abaikan huruf besar-kecil (opsional untuk kasus Anda).R
singkatan dari rekursif.l
singkatan dari "tampilkan nama file, bukan hasil itu sendiri"./
berarti mulai dari akar mesin Anda.