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

  • Modus Recordings

    Modus Record

    26 Kasım 2008
  • parlophone

    parlophone

    28 ŞUBAT 2006
  • wafflepwn

    wafflepwn

    14 AĞUSTOS 2008