OnWorks Linux 和 Windows 在线工作站

商标

工作站免费在线托管

<上一页 | 内容 | 下一页>

这个 程序有许多有趣的选项。 其中许多用于帮助更好地可视化文本内容。 一个例子是 -A 选项,用于在文本中显示非打印字符。 有时我们想知道控制字符是否嵌入在我们可见的文本中。 其中最常见的是制表符(与空格相对)和回车符,通常在 MS-DOS 样式的文本文件中作为行尾字符出现。 另一种常见情况是包含带有尾随空格的文本行的文件。

让我们使用创建一个测试文件 作为一个原始的文字处理器。 为此,我们只需输入命令 (连同为重定向输出指定一个文件)并输入我们的文本,然后 输入 正确结束该行,然后 Ctrl-d, 表示 我们已经到达文件尾。 在本例中,我们输入一个前导制表符并在该行后面加上一些尾随空格:



[我@linuxbox ~]$ 猫 > foo.txt

敏捷的棕色狐狸跳过了懒惰的狗。 [我@linuxbox ~]$

[我@linuxbox ~]$ 猫 > foo.txt

敏捷的棕色狐狸跳过了懒惰的狗。 [我@linuxbox ~]$


接下来,我们将使用 -A 显示文本的选项:


[我@linuxbox ~]$ 猫 -A foo.txt

^I敏捷的棕色狐狸跳过了懒惰的狗。 $ [me@linuxbox ~]$

[我@linuxbox ~]$ 猫 -A foo.txt

^I敏捷的棕色狐狸跳过了懒惰的狗。 $ [me@linuxbox ~]$


正如我们在结果中看到的,我们文本中的制表符由 ^I. 这是一个常见的表示法,意思是“Control-I”,事实证明,它与制表符相同。 我们还看到一个 $ 出现在该行的真正末尾,表明我们的文本包含尾随空格。


图片

MS-DOS 文本对比。 Unix 文本

您可能想要使用的原因之一 在文本中查找非打印字符就是发现隐藏的回车符。 隐藏回车从何而来? DOS 和 Windows! Unix 和 DOS 在文本文件中没有以相同的方式定义行尾。 Unix 以换行符 (ASCII 10) 结束一行,而 MS-DOS 及其衍生产品使用序列回车 (ASCII 13) 和换行符来终止每行文本。

有几种方法可以将文件从 DOS 格式转换为 Unix 格式。 在许多 Linux 系统上,有一些程序叫做 dos2unix UNIX2DOS, 它可以将文本文件与 DOS 格式相互转换。 但是,如果您没有 dos2u-nix 在你的系统上,别担心。 将文本从 DOS 格式转换为 Unix 格式的过程非常简单; 它只涉及删除违规回车。 这可以通过本章稍后讨论的几个程序轻松完成。


cat 还具有用于修改文本的选项。 两个最突出的是 -n,它对行进行编号,和 -s,它抑制多个空行的输出。 我们可以这样证明:


[我@linuxbox ~]$ 猫 > foo.txt

快速的棕色狐狸

[我@linuxbox ~]$ 猫 > foo.txt

快速的棕色狐狸


跳过懒狗。

[我@linuxbox ~]$ 猫 -ns foo.txt

跳过懒狗。

[我@linuxbox ~]$ 猫 -ns foo.txt


1

2

3

1

2

3


[我@linuxbox ~]$

[我@linuxbox ~]$


图片

快速的棕色狐狸

快速的棕色狐狸

跳过懒狗。

跳过懒狗。

在这个例子中,我们创建了一个新版本的 文件.txt 测试文件,其中包含由两个空行分隔的两行文本。 经处理后 -ns 选项,多余的空行被删除,剩余的行被编号。 虽然这不是一个对文本执行的过程,但它是一个过程。


OnWorks 的顶级操作系统云计算: