2010-05-21 31 views
44
Ben

nasıl bütün kelime

find . | xargs grep -s 's:text' 

Ancak subdirs bir şeyler grep için aşağıdaki komutu kullanıyorum

için yazılması için, bu da ben ne yapabilirim <s:textfield name="sdfsf"...../>

gibi şeyler bunun böylece önlemek için bulduğu sadece bulur

VEYA bu konuda <s:text name="sdfsdf"/> gibi şeyler .... ayrıca temelde <s:text somethingElse="lkjkj" name="lkkj"

bulurve name aynı satırda olmalıdır.

+17

herkes "nasıl ** bütünün ** Dünya için yazılması için" olarak başlığı okudun yapmalıdır? Lulz için – Earlz

+1

:) – josh

+7

@Earlz, hayır, çoğunlukla "grep bütün kelimeyi" çalıştırdım. –

cevap

49

-w seçeneğinin, bu kelimenin bir sonu olduğunu belirtmek istersiniz.

find . | xargs grep -sw 's:text'

0

Sadece kalan metin bölümünü filtrelemek isterseniz, bunu yapabilirsiniz.

xargs grep -s 's:text '

Bu son t arkasına boşluk sadece s:text örneklerini bulmak gerekir. Yalnızca bir ad öğesine sahip olan s:text örneklerini bulmanız gerekirse, sonuçlarınızı başka bir grep ifadesine aktarın veya yalnızca gereksinim duyduğunuz öğeleri filtrelemek için normal ifadeyi kullanın.

+0

Ya "metin" çıktının sonunda mı? Çözümünüzde atlanmayacak mı? – pkuszewski

22

Sen damgası grep araması yaparak xargs komutunu bırakabilirsiniz. Ve normalde 's' bayrağına ihtiyacınız yok. Dolayısıyla:

grep -wr 's:text' 
23

Kullanım \b bütün kelimeleri yalnızca üzerinde arama maçı yapacak "sözcük sınırları", eşleştirilecek.

olarak nitelemek üç farklı pozisyonlar vardır: Renk ve çizgi numaraları ekleyerek

grep -r "\bSTRING\b" 

gibi

Yani grep olmazdı şey çok

grep --color -rn "\bSTRING\b" 

http://www.regular-expressions.info/wordboundaries.html itibaren yardımcı olabilecek sözcük sınırları:

  • Dize içindeki ilk karakterden önce, ilk karakter sözcük karakteriyse.
  • Dizekteki son karakterden sonra, son karakteri bir sözcük karakteriyse.
  • Dizede iki karakter arasında, , biri bir sözcük karakteri, diğeri ise bir sözcük karakteri değildir.
0

Eğer rg deneyebilirsiniz, https://github.com/BurntSushi/ripgrep:

rg -w 's:text' . 

o

+0

Bu bağlantı soruyu yanıtlayabilirken, cevabın temel kısımlarını buraya dahil etmek ve referans için bağlantı sağlamak daha iyidir. Bağlantılı sayfa değiştiğinde yalnızca bağlantı yanıtları geçersiz olabilir. - [Yorum yaz] (/ review/düşük kaliteli yazılar/17780631) –

+1

Cevap verdim: rg -w 's: text'. – ms4720