SORU
6 HAZİRAN 2013, PERŞEMBE


Bulma tüm Linux üzerinde bir metin dizesini içeren dosya

Tüm dosyaları belirli bir metin dizesini içeren tüm Linux sistem taraması için bir yol bulmaya çalışıyorum. Sadece netleştirmek için, dosya adı kutusuna dosya içinde metin arıyorum.

Bunun nasıl yapılacağı en iyi zaman, bu çözüm karşısında iki kez geldim:

find / -type f -exec grep -H 'text-to-find-here' {} \;

Ancak, işe yaramıyor. Sistemdeki her dosya görüntüler gibi görünüyor.

Bu bunu yapmak için doğru yol bulunur? Nasıl? yok olursa Dosyaları içinde metin dizeleri bulmak için bu yeteneği olağanüstü yapıyorum programlama bazı projeler için benim için yararlı olacaktır.

CEVAP
6 HAZİRAN 2013, PERŞEMBE


Aşağıdakileri yapın:

grep -rnw 'directory' -e "pattern"

-r -R özyinelemeli satır numarası ve -w tüm kelimeyi maç duruyor. -l (L harfi) sadece dosya adı eklenebilir.

, --exclude --include Bu parametre ile birlikte, etkili bir arama için kullanılabilir. Sanki aşağıda:

grep --include=\*.{c,h} -rnw 'directory' -e "pattern"

Bu sadece var olan dosyalar arasında arama yapar .c ya .h uzantıları. Benzer şekilde --exclude örnek kullanım:

grep --exclude=*.o -rnw 'directory' -e "pattern"

Yukarıdaki tüm dosyaları ile biten arama hariç tutar .o uzatma. Dışlamak mümkün --exclude-dir --include-dir parametre aracılığıyla dizinleri dahil/dışlamak için dosya gibi, aşağıdaki --exclude-dir entegre etmek için nasıl gösterir:

grep --exclude-dir={dir1,dir2,*.dst} -rnw 'directory' -e "pattern"

Bu benim için çok iyi, hemen hemen senin gibi aynı amaca ulaşmak için çalışır.

İçin daha fazla seçenek :

man grep

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Le Cargo !

    Le Cargo !

    24 HAZİRAN 2007
  • Major FX

    Major FX

    6 HAZİRAN 2012
  • Sergio Lafuente Rubio

    Sergio Lafue

    11 Aralık 2008

İLGİLİ SORU / CEVAPLAR