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)
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)
这将突出显示模式(在本例中为尾随空白)...