반달가면 이글루에서 백업 - http://bahndal.egloos.com/596291
strings는 바이너리 파일에 포함되어 있는 문자열만 골라 화면에 출력해 주는 기능을 제공한다. 별도의 옵션을 지정하지 않을 경우 4바이트 이상의 문자열이 존재할 경우 화면에 출력해 준다. 아래의 예시를 보자.
# my_data.bin 파일에 포함된 문자열 출력
strings my_data.bin
화면에 출력할 문자열의 최소 길이는 기본값이 4이나, -n 옵션을 이용해서 사용자가 직접 지정해 줄 수도 있다.
# my_data.bin 파일에 포함된 길이 8바이트 이상의 문자열 출력
strings -n 8 my_data.bin
만약 출력 결과에 파일명을 같이 표시해 주고 싶다면 -f 옵션을 이용한다.
# 파일명을 함께 출력(-f)
strings -f my_data.bin
my_data.bin:...
my_data.bin:...
...
strings에서 문자열로 간주하는 범위는 기본적으로 영문에 국한되어 있다고 보면 된다(man 페이지에 보면 기본설정이 single-7-bit-byte character라고 표현되어 있다. ASCII, ISO 8859 등이 여기에 해당된다고 한다).
한글 리눅스에서 통상 많이 사용하게 되는 UTF-8 인코딩된 한글은 포함되지 않는다. 인코딩을 지정하는 -e 옵션에서 single-8bit-byte character에 대응하는 S 값을 주면 출력은 되는데, 다른 바이너리 데이터들도 이상하게 깨진 형태로 출력될 수 있다는 점에 유의.
# 인코딩 변경(-e): single-8bit-byte character
strings -e S my_data.bin
'bash script' 카테고리의 다른 글
[bash: grep] 바이너리 파일에서 문자열 검색하기 (0) | 2023.08.08 |
---|---|
[bash: awk] 특정 위치(field)에 대한 정규표현식 문자열 검색 (0) | 2023.08.08 |
[bash: timeout] 특정 명령어/프로세스에 대한 실행 시간 제한 설정 (0) | 2023.08.01 |
[bash: basename] 디렉토리는 제외하고 파일명만 추출하기 (0) | 2023.08.01 |
[bash: awk] awk에서 문자열을 분할하여 배열(array)에 저장하기 (split) (0) | 2023.08.01 |