web-dev-qa-db-fra.com

Comment supprimer les résultats de correspondance de fichier binaire dans grep

Lorsque vous utilisez grep sous linux, le résultat contient toujours beaucoup de "correspondances de fichiers binaires XXX", ce qui m’importe. Comment supprimer cette partie des résultats, ou comment exclure des fichiers binaires dans grep?

176
RandyTek

Vous pouvez utiliser trois options. -I est d'exclure les fichiers binaires dans grep. Les autres sont pour les numéros de ligne et les noms de fichiers.

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

Donc, cela pourrait être un moyen de lancer grep:

grep -InH your-Word *
247
Sergei Kurenkov

C’est une vieille question à laquelle on a répondu, mais j’ai pensé que je mettrais ici l’option --binary-files = text pour tous ceux qui voudraient l’utiliser. L'option -I ignore le fichier binaire mais si vous voulez que grep traite le fichier binaire comme un fichier texte, utilisez --binary-files = text comme ceci:

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$
8
amadain