如何使用Unix和“ cat”命令显示空格和制表符

Ale*_*Zhu 4 unix

我试图弄清楚如何通过unix显示文件的内容,其中以某种方式标记了空格和制表符。我知道如何使用标签(aka cat -T filename)显示文件,但我一直在努力弄清楚如何显示空格。cat -A filename不为我工作,只替换标签^I和地点$在该行的末尾。我如何利用cat打印出的所有制表符和空格都被清楚标记的文件?

pal*_*ako 5

有一个用于字符替换的标准Unix工具。在此示例中,我替换了*的空格和&的制表符:

$ cat tmp
space tab   space   tab end
tab space   tab space end
$ cat tmp | tr " " "*" | tr "\t" "&" 
space*tab&space&tab&end
tab&space&tab*space*end
Run Code Online (Sandbox Code Playgroud)

  • 这可以通过一次 `tr` 调用来完成:`tr " \t" "*&"` (2认同)

Sco*_*ive 5

您的问题的答案:不,cat 命令不能将空格“显示”为可见字符。它只是不包含这样的功能。Cat仅提供-T(显示选项卡)或-E(显示换行符)或-A(显示两种类型)。

我认为帕拉科是想说这个,但他却直接跳到为您提供一个有效的解决方法。如果您想直观地计算空间,那没问题。有许多解决方法,但并非所有方法都适合所有用户。

如果您需要不同的东西,我建议研究 Perl 的单行语句(因为它们可以轻松地适应现有的 UNIX 脚本),或者用 Python 编写一些模仿“cat”但用另一个字符替换空格的东西,很像 palako 的“tr”示例。