La página de manual de grep
describe la -I
bandera de la siguiente manera:
-I Ignore binary files. This option is equivalent to
--binary-file=without-match option.
También dice esto sobre archivos binarios:
--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.
No puedo pensar en un escenario en el que me importarían las coincidencias en archivos binarios. Si existe tal escenario, seguramente debe ser la excepción y no la norma. ¿Por qué no grep
ignora los archivos binarios de forma predeterminada en lugar de requerir que se configure este indicador para hacerlo?
GREP_OPTIONS
a su configuración preferida, luego no tiene que usar tantos modificadores de línea de comando..(ba|z|foo)shrc':
alias grep = "grep -I" `.Respuestas:
No todo lo que grep piensa es un archivo binario, en realidad es un archivo binario. por ejemplo, los registros de las marionetas tienen codificación de colores ansi, lo que hace que grep piense que son binarios. Todavía me gustaría buscarlos si estoy buscando a través de / var / log.
fuente
grep
La capacidad de buscar archivos binarios también es útil cuando estoy compilando un programa y el enlazador (ld
) se queja de que no se encuentra alguna función. Puedo usar un comando comopara encontrar la biblioteca que lo contiene. (Las bibliotecas son archivos binarios).
fuente
grep -l function_name /lib/lib*
onm -Do /lib/lib* | grep function_name
oldconfig -p | grep -o '/.*/lib.*' | xargs nm -Do | grep function_name
aunque.grep some_function /lib/*
es más corto y generalmente da la respuesta correcta: nombre de la biblioteca que estoy buscando. Pero sí, a veces también se requiere un enfoque más sofisticado como el suyo.