Tuesday, October 31, 2006
grep] 이진파일/NULL포함 TEXT찾기 옵션; Binary File Grep
리눅스/유닉스의 문자열 찾기 명령인 grep 은 텍스트 파일 속의 문자열을 찾습니다.
(1) 그런데 텍스트 파일인데도 그 안에 실수로 널문자(NULL) 즉 아스키 0x00번 코드가 들어간 경우가 있습니다. 파일의 어느곳에든 널문자가 하나라도 있으면, grep이 그 파일을 이진파일로 간주하기에 Binary file 0.txt matches 이런 메시지만 출력되고 찾기가 되지 않습니다.
(2) 또한 이진파일 속의 문자열을 찾아야 할 경우도 있습니다.
위의 1번 경우든 2번 경우든, 이진파일 즉 바이너리 파일 찾기 옵션을 주면 해결이 됩니다.
-a 옵션을 붙이면 바이너리 파일을 grep 할 수 있습니다.
널문자가 포함된 0.txt 라는 텍스트 파일에서 가슴 이라는 문자열을 정상적으로 찾습니다.
이제 0.exe 라는 이진파일에서 DOS mode 라는 문자열을 정상적으로 찾습니다.
(1) 그런데 텍스트 파일인데도 그 안에 실수로 널문자(NULL) 즉 아스키 0x00번 코드가 들어간 경우가 있습니다. 파일의 어느곳에든 널문자가 하나라도 있으면, grep이 그 파일을 이진파일로 간주하기에 Binary file 0.txt matches 이런 메시지만 출력되고 찾기가 되지 않습니다.
(2) 또한 이진파일 속의 문자열을 찾아야 할 경우도 있습니다.
위의 1번 경우든 2번 경우든, 이진파일 즉 바이너리 파일 찾기 옵션을 주면 해결이 됩니다.
-a 옵션을 붙이면 바이너리 파일을 grep 할 수 있습니다.
grep -a '가슴' 0.txt
널문자가 포함된 0.txt 라는 텍스트 파일에서 가슴 이라는 문자열을 정상적으로 찾습니다.
grep -a 'DOS mode' 0.exe
이제 0.exe 라는 이진파일에서 DOS mode 라는 문자열을 정상적으로 찾습니다.
tag: linux
리눅스 Linux | 유닉스 Unix | 시그윈 Cygwin
<< Home