문자열 명령으로 파일의 인쇄 가능한 문자를 표시하는 방법

에디터에서 파일을 열려고 시도했을 때만 읽을 수없는 바이너리 컨텐츠가 포함되어 있는지 확인하십시오.

Linux "strings"명령을 사용하면 사람이 읽을 수있는 문자를 모든 파일에서 볼 수 있습니다.

"strings"명령을 사용하는 주요 목적은보고있는 파일의 유형을 알아내는 것 뿐이지 만 텍스트를 추출하는 데 사용할 수도 있습니다. 예를 들어 파일을 이상한 바이너리 형식으로 저장하는 전용 프로그램의 파일이있는 경우 "문자열"을 사용하여 파일에 넣은 텍스트를 추출 할 수 있습니다.

Strings 명령의 사용 예

strings 명령의 강력한 기능을 보여주는 가장 좋은 방법은 LibreOffice Writer를 사용하여 문서를 만드는 것입니다.

LibreOffice Writer를 열고 텍스트를 입력 한 다음 표준 ODT 형식으로 저장하십시오.

이제 CTRL, ALT 및 T를 동시에 누른 상태에서 터미널 창을 연 다음 cat 명령 을 사용 하여 다음과 같이 파일을 표시하십시오.

cat yourfilename.odt | 더

(yourfilename.odt를 작성한 파일의 이름으로 대체하십시오.)

당신이 볼 수있는 것은 읽을 수없는 텍스트의 전체 벽입니다.

스페이스 바를 눌러 파일을 스크롤하십시오. 파일 전반에 걸쳐 산발적으로 입력 한 텍스트 중 일부가 표시됩니다.

strings 명령은 사람이 읽을 수있는 부분 만 표시하는 데 사용할 수 있습니다.

가장 간단한 형태로 다음 명령을 실행할 수 있습니다.

string yourfilename.odt | 더

이전과 마찬가지로 텍스트 벽이 표시되지만 인간으로 읽을 수있는 텍스트 만 표시됩니다. 운이 좋으면 텍스트를 볼 수 있습니다.

그러나 이것이 핵심이라고 볼 수있는 것은 첫 번째 줄에 있습니다.

mimetypeapplication / vnd.oasis.opendocument.text

다음 두 가지 이유로 파일 형식이 LibreOffice Writer ODT 파일임을 알고 있습니다.

  1. 우리는 파일을 만들었습니다.
  2. 확장자는 .ODT입니다.

파일을 만들지 않았거나 복구 된 디스크에서 파일을 찾았으며 파일에 확장자가 없다고 상상해보십시오.

Windows 복구 는 0001, 0002, 0003 등의 이름을 가진 파일을 복구하는 경우 가 많았습니다. 파일이 복구되었다는 사실은 훌륭했지만 그 파일의 유형이 악몽이었던 것을 해결하려고했습니다.

문자열을 사용하면 파일 유형을 처리 할 수있는 기회가 생깁니다. 파일이 opendocument.text 파일임을 알면 ODT 확장자로 저장하고 LibreOffice writer에서 열 수 있음을 의미합니다.

ODT 파일을 모르는 경우에는 기본적으로 압축 파일입니다. yourfilename.odt의 이름을 yourfilename.zip으로 변경하면 아카이브 도구에서 파일을 열고 파일의 압축을 풀 수도 있습니다.

대체 행동

기본적으로 strings 명령은 파일 내의 모든 문자열을 반환하지만 파일에서 초기화 된로드 된 데이터 섹션의 문자열을 반환하도록 동작을 전환 할 수 있습니다.

이것은 정확히 무엇을 의미합니까? 아무도 모르는 것 같습니다.

문자열을 사용하여 파일 유형을 찾거나 파일의 특정 텍스트를 찾는 것으로 가정하는 것이 좋습니다.

기본 동작을 사용하여 strings 명령을 실행할 때 원하는 결과를 얻지 못하면 다음 명령 중 하나를 실행하여 차이가 있는지 확인하십시오.

문자열 -d yourfilename

문자열 - 데이터 yourfilename

매뉴얼 페이지는 위의 명령이 문자열에서 반환되는 가비지 양을 줄이는 데 도움이 될 수 있다고 설명합니다.

"strings"명령은 반대로 작동하도록 설정되어 마이너스 스위치가 기본 동작입니다. 이 경우 시스템에있는 경우 다음 명령을 사용하여 모든 데이터를 반환 할 수 있습니다.

문자열 -a yourfilename

출력 형식 지정

출력 내에서 텍스트를 가져 와서 각 텍스트 행과 함께 파일 이름을 표시 할 수 있습니다.

이렇게하려면 다음 명령 중 하나를 실행하십시오.

문자열 -f yourfilename

문자열 --print-file-name yourfilename

출력 결과는 다음과 같습니다.

yourfilename : 텍스트 조각

yourfilename : 다른 텍스트 조각

출력의 일부로 해당 텍스트가 파일에 나타나는 위치의 오프셋을 표시 할 수도 있습니다. 이렇게하려면 다음 명령을 실행하십시오.

문자열 -o yourfilename

결과는 다음과 같습니다.

16573 당신

17024 텍스트

오프셋은 실제로 시스템에서 문자열이 컴파일 된 방법에 따라 쉽게 16 진수 또는 10 진수 오프셋이 될 수 있지만 8 진 오프셋입니다.

원하는 오프셋을 얻는보다 정확한 방법은 다음 명령을 사용하는 것입니다.

문자열 -td yourfilename

문자열 - 당신의 파일 이름

문자열 --th yourfilename

빼기 -는 오프셋을 반환하고 뒤에 오는 문자는 오프셋 유형을 결정합니다. (즉, d = 십진수, o = 8 진수, h = 16 진수).

기본적으로 strings 명령은 새로운 행에 각각의 새로운 문자열을 인쇄하지만 선택 사항의 분리 문자를 설정할 수 있습니다. 예를 들어 파이프 기호 ( "|")를 구분 기호로 사용하려면 다음 명령을 실행합니다.

문자열 -s "|" 당신의 파일 이름

문자열 제한 조정

strings 명령은 기본적으로 한 행에 4 개의 인쇄 가능한 문자로 이루어진 문자열을 찾습니다. 인쇄 가능한 8 자 또는 인쇄 가능한 12 자의 문자열 만 리턴하도록 기본값을 조정할 수 있습니다.

이 제한을 조정하면 출력을 조정하여 최상의 결과를 얻을 수 있습니다. 너무 긴 문자열을 찾으면 유용한 텍스트를 생략 할 위험이 있지만 너무 짧게 만들면 훨씬 많은 쓰레기가 반환 될 수 있습니다.

문자열 제한을 조정하려면 다음 명령을 실행하십시오.

문자열 -n 8 yourfilename

위의 예에서 나는 한계를 8로 변경했다.

8을 원하는 번호로 바꿀 수 있습니다.

다음 명령을 사용하여 동일한 작업을 수행 할 수도 있습니다.

문자열 --bytes = 8 yourfilename

공백 포함

기본적으로 strings 명령에는 인쇄 가능한 문자로 탭이나 공백과 같은 공백이 포함됩니다. 그러므로 "고양이가 매트 위에 앉았다"고 읽는 문자열이 있다면 strings 명령은 전체 텍스트를 반환합니다.

새 줄 문자와 캐리지 리턴은 기본적으로 인쇄 가능한 문자로 간주되지 않습니다.

문자열이 새로운 줄 문자와 캐리지 리턴을 인쇄 가능한 문자로 인식하도록하려면 다음과 같이 문자열을 실행합니다.

문자열 -w yourfilename

인코딩 변경

문자열과 함께 사용할 수있는 5 가지 인코딩 옵션이 있습니다.

기본값은 7 비트 바이트입니다.

인코딩을 변경하려면 다음 명령을 실행하십시오.

문자열 - yourfilename

문자열 --encoding = s yourfilename

위의 명령에서 7 비트 바이트를 의미하는 기본값 "s"를 지정했습니다. "s"를 원하는 인코딩 문자로 바꾸기 만하면됩니다.

이진 파일 설명 이름 변경

시스템에 제공된 것 이외의 다른 2 진 파일 설명자 라이브러리를 사용하도록 문자열의 작동을 변경할 수 있습니다.

이 스위치는 전문가 용 스위치입니다. 사용할 다른 라이브러리가 있으면 다음과 같은 strings 명령을 실행하여 라이브러리를 사용할 수 있습니다.

문자열 -T bfdname

파일에서 옵션 읽기

매번 동일한 옵션을 사용하려는 경우 시간이 걸리기 때문에 명령을 실행할 때마다 모든 스위치를 지정하지 않아도됩니다.

당신이 할 수있는 일은 nano를 사용하여 텍스트 파일을 만들고 그 파일 내의 옵션을 지정하는 것입니다.

터미널에서이 문제를 해결하려면 다음 명령을 실행하십시오.

나노 stringsopts

파일에 다음 텍스트를 입력하십시오.

-f -o -n 3 -s "|"

CTRL과 O를 눌러 파일을 저장하고 CTRL과 X를 눌러 종료하십시오.

이 옵션으로 strings 명령을 실행하려면 다음 명령을 실행하십시오.

문자열 @stringsopts yourfilename

옵션은 파일 stringsopts에서 읽히고 각 문자열 앞의 파일 이름, 오프셋 및 "|"을보아야합니다. 분리기로서.

도움을 받다

문자열에 대한 자세한 내용을 보려면 다음 명령을 실행하여 도움을 받으십시오.

문자열 --help

또는 설명서 페이지를 읽을 수도 있습니다.

남자 끈

실행중인 문자열 버전 찾기

실행중인 문자열의 버전을 찾으려면 다음 명령 중 하나를 실행하십시오.

문자열 -v

문자열 -V

문자열 - 버전