Toto je stará otázka a byla zodpovězena, ale myslel jsem, že sem vložím možnost --binary-files=text pro každého, kdo ji chce používat. Volba -I ignoruje binární soubor, ale pokud chcete, aby grep nakládal s binárním souborem jako s textovým souborem, použijte --binary-files=text takto:
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$
Existují tři možnosti, které můžete použít. -I
je vyloučit binární soubory v grep. Ostatní jsou pro čísla řádků a názvy souborů.
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
Takže toto může být způsob, jak spustit grep:
grep -InH your-word *
Jak při použití printf uniknout speciálním znakům ve skriptu shellu?
Deduplikujte rozvětvení Git na serveru