반달가면 이글루에서 백업 - http://bahndal.egloos.com/597263
grep 명령을 이용한 문자열 검색을 바이너리 파일에 적용할 경우, 별도의 옵션을 주지 않으면 해당 문자열 존재 여부만 알 수 있다.
# my_data.bin 파일에 문자열 ABC가 존재하는지 확인
grep "ABC" my_data.bin
Binary file my_data.bin matches
일치하는 문자열이 있을 때 해당 문자열을 화면에 표시하고 싶다면 -a 옵션을 추가해 주면 된다.
# my_data.bin 파일에서 문자열 ABC를 검색, 있을 경우 화면에 출력
grep -a "ABCD" my_data.bin
ABCDEFG
텍스트 파일에 대해 문자열 검색을 할 때 -a 옵션을 붙여도 별 문제 없이 검색이 잘 되므로, 텍스트 파일인지 바이너리 파일인지 잘 모르겠는 상황에서는 구분할 필요 없이 그냥 -a 옵션을 사용하면 되겠다.
또 한가지 방법은 바이너리 파일에서 문자열만 모아서 출력해 주는 strings 명령과 조합하는 것이다. 아래의 예시와 같이 strings의 출력을 grep의 입력으로 보낸다.
# my_data.bin 파일에서 문자열 ABC 검색
strings my_data.bin | grep "ABCD"
ABCDEFG
참고로, 바이너리 파일에서 16진수를 검색하는 방법은 이전 게시물을 참고하자. 여기로.
728x90
'bash script' 카테고리의 다른 글
[bash: sed] 리눅스에서 윈도우 텍스트 파일의 CR(캐리지 리턴) 제거 (0) | 2023.08.10 |
---|---|
[bash: awk] 2개의 파일에 있는 자료 종합하기 (0) | 2023.08.08 |
[bash: awk] 특정 위치(field)에 대한 정규표현식 문자열 검색 (0) | 2023.08.08 |
[bash: strings] 바이너리 파일에서 문자열만 골라 출력하기 (0) | 2023.08.01 |
[bash: timeout] 특정 명령어/프로세스에 대한 실행 시간 제한 설정 (0) | 2023.08.01 |