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

  • 0TACTICAL0HIPPY0

    0TACTICAL0HI

    30 EYLÜL 2012
  • 3DS Max Tutorials

    3DS Max Tuto

    4 AĞUSTOS 2013
  • Kim Barbin

    Kim Barbin

    3 Mayıs 2012