Perl 스크립트로 생성된 텍스트의 줄 끝 확인

Perl 스크립트로 생성된 텍스트의 줄 끝 확인

16진수 모드에서 텍스트 파일의 내용을 보고 싶습니다.

이것을 시도해 보았는데 :%!xxd문제는 어떤 16진수 코드가 각 문자를 나타내는지 실제로 이해할 수 없다는 것입니다. 예를 들어 Ultra Edit와 같은 편집기를 사용하여 16진수 코드를 보면 해당 문자가 강조 표시됩니다.

그렇다면 내 상황에 맞게 비슷한 작업을 어떻게 수행할 수 있습니까?

내 문제에 대한 배경 정보를 제공하기 위해 파일을 생성하는 스크립트가 있고 각 줄이 (LF)로만 끝나는 perl지 확인하고 싶습니다 .0x0A

이상한 점은 파일을 열고 vim를 사용하면 스크립트에서 명시적으로 수행했는데도 :set list볼 수만 있다는 것입니다.$$line .= "\r\n"

답변1

당신은 시도 할 수 있습니다:

open my $fh, '>', 'test.txt'
    or die "$!";
binmode $fh;
print $fh "QWERTY\n";

기본적으로 줄 끝에만 포함되어 있기 때문에 $in 만 볼 수 있습니다 . 에서 :vimlistchars$:help listchars

'listchars' 'lcs'       string  (default "eol:$")
                        global
                        {not in Vi}
        Strings to use in 'list' mode and for the :list command.  It is a
        comma separated list of string settings.
                                                        lcs-eol
          eol:c         Character to show at the end of each line.  When
                        omitted, there is no extra character at the end of the
                        line.

실제 줄 끝을 알아 보려면 다음을 시도 file하십시오 cat.

$ file test.txt 
test.txt: ASCII text, with CRLF line terminators
$ cat -e test.txt 
QWERTY^M$

답변2

텍스트 파일에서 인쇄할 수 없는 문자를 보는 POSIX 이식 가능한 방법은 다음과 같습니다.

sed -n l <file

이식 가능한 것 외에도 sed- 한 번 사용을 피하고 인쇄할 수 없는 문자에 대해 C 스타일 또는 8진수 이스케이프를 사용하면 해당 줄은 기본적으로 두 번 인쇄된 -n다음 일반적으로 표시되는 것처럼 즉시 다시 인쇄됩니다.

다음과 같이 할 수도 있습니다.

sed =\;l <file

출력 라인 쌍을 라인 번호로 구분합니다.

관련 정보