GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara menemukan semua file yang berisi teks tertentu di Linux?

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.

Linux
  1. Bagaimana Menemukan Semua File Yang Tidak Mengandung String Teks?

  2. Bagaimana Menemukan Semua File yang Dimiliki oleh Pengguna Tertentu di Unix/Linux?

  3. Cara Menemukan Teks Tertentu menggunakan GREP di Linux

  1. Cara gzip semua atau file tertentu di Linux

  2. Perintah Linux:Bagaimana cara 'menemukan' hanya file teks?

  3. Bagaimana menemukan semua file yang diakhiri dengan .rb dengan Linux?

  1. Bagaimana menemukan file teks yang tidak mengandung teks di Linux?

  2. Bagaimana menemukan file yang berisi dua string bersama di Linux?

  3. Bagaimana cara mendaftar semua file partisi di linux?