[unix] grep이 기본적으로 바이너리 파일을 무시하지 않는 이유는 무엇입니까?
에 대한 맨 페이지에서는 다음과 같이 플래그 를 grep
설명합니다 -I
.
-I Ignore binary files. This option is equivalent to
--binary-file=without-match option.
이진 파일에 대해서도 다음과 같이 말합니다.
--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.
이진 파일의 일치 항목에 관심이있는 시나리오는 생각할 수 없습니다. 이러한 시나리오가 존재하는 경우 반드시 표준이 아닌 예외 여야합니다. 왜이 grep
플래그를 설정 하지 않고 바이너리 파일을 무시 하지 않는가 ?
답변
grep이 생각하는 모든 것이 이진 파일 인 것은 아니며 실제로 이진 파일입니다. 예를 들어 꼭두각시 로그에는 ansi 색상 코딩이있어 grep이 바이너리라고 생각합니다. 그래도 / var / log를 통해 grepping하는 경우 여전히 검색하고 싶습니다.
답변
grep
이진 파일을 검색하는 기능은 프로그램을 컴파일 할 때 유용하며 링커 ( ld
)가 일부 기능을 찾을 수 없다고 불평합니다. 나는 같은 명령을 사용할 수 있습니다
grep function_name / lib / lib *
라이브러리가 포함 된 라이브러리를 찾습니다. (라이브러리는 이진 파일입니다.)