如何在文本文件中显示尾随空格?

ken*_*orb 2 command-line osx whitespace cat

我希望能够打印并查看文本文件中的尾随空格(仅显示,而不是删除)。

我试过用cat -vwhich 假设显示非打印字符,但它没有按预期显示它们(行之间没有视觉差异)。例如

$ printf "foo\nbar \t\n" > file.txt
$ cat -v file.txt 
foo
bar     
Run Code Online (Sandbox Code Playgroud)

通过打印/显示空格,我的意思是一些视觉人类指示,与其他行相比,尾随空格在那里,没有一些特殊字符、颜色(例如使用 显示文件时git diff)或类似的东西。

有没有其他办法?


注意:我使用的是 macOS Sierra,但是我可以访问 GNU 和 BSDcat命令:

$ 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 ...]
Run Code Online (Sandbox Code Playgroud)

don*_*sti 5

gnu cat有一个-E开关,所以输入像

printf " one \ntwo \t\n"
Run Code Online (Sandbox Code Playgroud)

它会打印

 one $
two    $
Run Code Online (Sandbox Code Playgroud)

有很多方法可以模拟这种行为,例如sed在“原始”模式下使用:

sed -n l infile
Run Code Online (Sandbox Code Playgroud)

或者

paste -d '$' infile /dev/null
Run Code Online (Sandbox Code Playgroud)

或使用任何文本处理工具$在每个换行符之前添加一个...

你也可以尝试类似的东西

less -p '[[:blank:]]+$' infile
Run Code Online (Sandbox Code Playgroud)

这将突出显示模式(在本例中为尾随空白)...