La page de manuel pour grep
décrit le -I
drapeau comme suit:
-I Ignore binary files. This option is equivalent to
--binary-file=without-match option.
Il dit aussi ceci à propos des 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 de demander à cet indicateur de le faire?
GREP_OPTIONS
sur vos paramètres préférés, sans avoir à utiliser autant de commutateurs de ligne de commande..(ba|z|foo)shrc':
alias grep = "grep -I" `.Réponses:
Tout ce que pense Grep n’est pas un fichier binaire, c’est un fichier binaire. Par exemple, les journaux de marionnettes ont un code de couleur ansi, ce qui fait que grep pense qu'ils sont binaires. Je voudrais quand même les rechercher si je me fais passer par / var / log.
la source
grep
La capacité de recherche de fichiers binaires est également utile lorsque je compile un programme et que l'éditeur de liens seld
plaint d'une fonction introuvable. Je peux utiliser une commande commetrouver la bibliothèque qui la contient. (Les bibliothèques sont des fichiers binaires.)
la source
grep -l function_name /lib/lib*
ounm -Do /lib/lib* | grep function_name
ouldconfig -p | grep -o '/.*/lib.*' | xargs nm -Do | grep function_name
bien.grep some_function /lib/*
est plus court et donne généralement la bonne réponse - nom de la bibliothèque que je cherche. Mais oui, il faut parfois une approche plus sophistiquée comme la vôtre.