텍스트 파일에 후행 공백을 표시하는 방법은 무엇입니까?

텍스트 파일에 후행 공백을 표시하는 방법은 무엇입니까?

텍스트 파일의 후행 공백을 인쇄하고 볼 수 있기를 원합니다(제거할 수는 없고 표시만 함).

인쇄되지 않는 문자를 표시하기 위해 이것을 사용하려고 시도했지만 cat -v예상대로 표시되지 않습니다(줄 사이에 시각적 차이가 없음). 예를 들어

$ printf "foo\nbar \t\n" > file.txt
$ cat -v file.txt 
foo
bar     

git diff공백을 인쇄/표시한다는 것은 다른 줄이나 특수 문자, 색상(예: 디스플레이 파일을 사용할 때 ) 등에 비해 후행 공백이 존재한다는 시각적인 인간 표시를 의미합니다 .

다른 방법이 있나요?


참고: 저는 macOS Sierra를 사용하고 있지만 GNU 및 BSD cat명령에 액세스할 수 있습니다.

$ type -a cat
cat is /usr/local/opt/coreutils/libexec/gnubin/cat
cat is /bin/cat
$ cat --version
cat (GNU coreutils) 8.28
$ /bin/cat --version
/bin/cat: illegal option -- -
usage: cat [-benstuv] [file ...]

답변1

gnu cat-E이런 스위치가 있어서 입력은 다음과 같습니다.

printf " one \ntwo \t\n"

그것은 인쇄됩니다

 one $
two    $

sed예를 들어 "원시" 모드를 사용하여 이 동작을 시뮬레이션하는 방법은 여러 가지가 있습니다 .

sed -n l infile

또는

paste -d '$' infile /dev/null

$또는 텍스트 처리 도구를 사용하여 각 개행 문자 앞에...를 추가하세요.

다음과 같은 것을 시도해 볼 수도 있습니다.

less -p '[[:blank:]]+$' infile

그러면 패턴이 강조 표시됩니다(이 경우 후행 공백).

관련 정보