web-dev-qa-db-fra.com

Pourquoi grep n'ignore-t-il pas les fichiers binaires par défaut?

La page de manuel de grep décrit le -I drapeau comme suit:

-I      Ignore binary files.  This option is equivalent to 
        --binary-file=without-match option.

Il dit également ceci sur les fichiers binaires:

 --binary-files=value Controls searching and printing of binary files.
         Options are binary, the default: search binary files but do not print
         them; without-match: do not search binary files; and text: treat all
         files as text.

Je ne peux pas penser à un scénario où je me soucierais des correspondances dans les fichiers binaires. Si un tel scénario existe, il doit sûrement être l'exception plutôt que la norme. Pourquoi grep n'ignore-t-il pas les fichiers binaires par défaut plutôt que d'exiger la définition de cet indicateur pour le faire?

102
user36078

Tout ce que grep pense n'est pas un fichier binaire, n'est pas en fait un fichier binaire. par exemple. les journaux de marionnettes ont un code couleur ansi, ce qui fait croire à grep qu'ils sont binaires. Je voudrais quand même les rechercher si je suis en train de parcourir/var/log.

91
Dennis Kaarsemaker

La capacité de grep à rechercher des fichiers binaires est également utile lorsque je compile un programme et que l'éditeur de liens (ld) se plaint qu'une fonction n'est pas trouvée. Je peux utiliser une commande comme

grep nom_fonction / lib/lib *

pour trouver la bibliothèque qui le contient. (Les bibliothèques sont des fichiers binaires.)

5