içeren dosyalar için tüm dizinleri ve alt dizinleri arar Bu komut "metin"yinelemeli arama dosyaları adlı string.xml ben sadece 'strings.xml adlandırılır dosyalarda arama yapma belirtebilirim nasıl
grep -r "text" *
'?
içeren dosyalar için tüm dizinleri ve alt dizinleri arar Bu komut "metin"yinelemeli arama dosyaları adlı string.xml ben sadece 'strings.xml adlandırılır dosyalarda arama yapma belirtebilirim nasıl
grep -r "text" *
'?
Bunun için find
kullanmak isteyeceksiniz, çünkü grep
bu şekilde yinelenen (bildiğim kadarıyla) bu şekilde çalışmayacaktır. adı strings.xml (-name "strings.xml"
) ile bir dosya için geçerli dizine (.
) başlayan
find . -name "strings.xml" -exec grep "text" "{}" \;
find
komuta aramalar ve ardından her bulundu dosya için, grep
komut belirtilen yürütün: Böyle bir şey çalışması gerekir . Küme parantezleri ("{}"
), find
'un bulduğu dosyanın adını belirtmek için kullandığı bir yer tutucudur. Daha fazla ayrıntı man find
adresinde bulunabilir.
Ayrıca, find
yinelemeli olarak çalıştığından, grep için -r
seçeneğinin artık gerekli olmadığını unutmayın.
'u bulmayı deneyin. -type f |
bulmak komut arama "string.xml dize geçerli dizinden grep "strings.xml" * xargs.
grep Yani. Kullanımını yalnızca dosya eşleştirme ÞABLONUNUN arama dizinleri Recurse bir --include seçeneği destekleyen, aşağıdaki gibi bir şey deneyin:
find ./ -name "strings.xml" -exec grep "text" '{}' \; -print
Bu bağlantılar söz:
grep -R --include 'strings.xml' text .
Ben de oldukça hızlı grep daha görünüyor find kullanılarak çalıştı Aynı konu, size yardımcı olabilir:
'grep -R string *.txt' even when top dir doesn't have a .txt file
Sen grep komutunu kullanabilirsiniz:
grep -r "text" /path/to/dir/strings.xml
sayesinde küme parantezleri ne yaparsınız? – thisiscrazy4
@ thisiscrazy4 Bu bilgi ile güncellendi. –
Özellikle bir dosya türünde bir dize bulmak için bu komutu kullandım. bulabilirsiniz. -name "* .java" -exec grep -rn "string" "{}" \; Olayları gösterir, ancak dosya adı yok. Dosya adı nasıl verilir. Pls yardımı. –