adsense_in_article_test


[bash: grep] 바이너리 파일에서 문자열 검색하기 리눅스 bash script

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진수를 검색하는 방법은 이전 게시물을 참고하자. 여기로.



덧글

댓글 입력 영역
* 비로그인 덧글의 IP 전체보기를 설정한 이글루입니다.



통계 위젯 (화이트)

304398
2207
2432105

2019 대표이글루_IT

B-Side