2014-09-15 25 views
89

Linux'ta grep kullanıldığında, sonuçta umurumda değil "her zaman bir çok ikili dosya XXX eşleşmesi" bulunur. Sonuçların bu bölümünü nasıl bastıracaksınız veya ikili dosyaları grep'te nasıl hariç tutabilirsiniz?İkili dosya eşleşmesi sonuçları nasıl sonuçlanır grep

+4

grep -I ....... .. –

+0

@skwllsp Ancak -l ile sonuçlar, eşleşen dosya adını içermeyen eşleştirilmiş satırı içermez. – RandyTek

+0

Çizgiler için bir seçenek var: grep -I-n-H –

cevap

120

Kullanabileceğiniz üç seçenek vardır. -I, ikili dosyaları grep'te hariç tutmak içindir. Diğer satır numaraları ve dosya adları içindir. Burada

grep -InH your-word * 
+0

bu çalışır. Thx @skwllsp – RandyTek

+5

Kullanıyordum '-I'' r' tüm klasörlerin içine bakmak için tekrarlayıcı duruyor. 'H' burada exsessive burada – vladkras

+0

@vladkras," H burada exsessive "- gereksiz demek, yani zaten varsayılan var mı? –

5

Bu eski bir sorudur ve onun cevaplanmış ama ben --binary-dosyaları koymak düşündüm = metin seçeneği:

grep -I -n -H 


-I -- process a binary file as if it did not contain matching data; 
-n -- prefix each line of output with the 1-based line number within its input file 
-H -- print the file name for each match 

Yani bu grep çalıştırmak için bir yol olabilir kullanmak isteyen herkes için. -I seçeneği, ikili dosyayı yok sayar, ancak grep'in ikili dosyayı bir metin dosyası olarak ele almasını istiyorsanız, --binary-files = metin gibi şu şekilde kullanın:

bash$ grep -i reset mediaLog* 
Binary file mediaLog_dc1.txt matches 
bash$ grep --binary-files=text -i reset mediaLog* 
mediaLog_dc1.txt:2016-06-29 15:46:02,470 - Media [uploadChunk ,315] - ERROR - ('Connection aborted.', error(104, 'Connection reset by peer')) 
mediaLog_dc1.txt:ConnectionError: ('Connection aborted.', error(104, 'Connection reset by peer')) 
bash$