find . -type f | xargs file | grep text | cut -d':' -f1 | xargs grep -l "TEXTSEARCH" {}
Bu iyi bir çözüm mü? için Sen grep
seçenekleri -r
(özyinelemeli) kullanın ve -I
(ikili görmezden) olabilirgrep sadece metin dosyaları
find . -type f | xargs file | grep text | cut -d':' -f1 | xargs grep -l "TEXTSEARCH" {}
Bu iyi bir çözüm mü? için Sen grep
seçenekleri -r
(özyinelemeli) kullanın ve -I
(ikili görmezden) olabilirgrep sadece metin dosyaları
yinelemeli sadece metinsel dosyalarında Textsearch bulmak:
$ grep -rI "TEXTSEARCH" .
-I
Süreç bir ikili dosya yaptım sanki eşleşen veri içermiyor; Bu--binary-files=without-match
seçeneğine eşdeğerdir. Her dizinin altındaki tüm dosyaları yinelemeli olarak okuyun; Bu-d recurse
seçeneğine eşdeğerdir.
Bu doğru cevaptır. – PhiloSurfer
@PhiloSurfer: Sadece oy verin. ;) –
Hayır, bu özel bir dosyayı görmezden gelemez, unix soketi gibi – hylepo
Kevs daha başka, daha az zarif çözüm, zincire içinde Xargs olmadan birlikte bulmak komutları edilir -exec ve kesinti:
find . -type f -exec bash -c "file -bi {} | grep -q text" \; -exec grep TEXTSEARCH {} ";"
yerine milyar upvotes ile cevabı kabul eder misiniz? –
tamam teşekkür ederim @ Zoltán – StefanoCudini