Linux 中的 Cat 命令——用 Bash 示例解释连接
Linux 中的 Cat 代表串联(将事物合并在一起),是最有用和最通用的 Linux 命令之一。虽然不像真正的猫那样可爱可爱,但 Linuxcat
命令可用于支持使用字符串、文件和输出的许多操作。
cat 命令具有涉及文本文件的三个主要目的:
- 创造
- 读取/显示
- 更新/修改
我们将依次介绍其中的每一个,以显示与每个操作相关的命令和选项。
入门
首先,让我们创建几个名为 foo.txt 和 spam.txt 的文件。
cat > foo.txt
让我们从使用 Linux 命令行中的命令创建 foo.txt 开始。
警告:如果已经有一个名为 foo.txt 的文件,cat
使用 > 运算符的命令将覆盖它。
从这里提示将显示一个换行符,允许我们输入我们想要的文本。对于这个例子,我们将使用:
FILE 1
foo
bar
baz
要返回命令行并创建文本文件,我们使用 CTRL + D。
现在让我们创建 spam.txtcat > spam.txt
并输入以下内容:
FILE 2
spam
ham
eggs
如果我们想在这些文件中附加或添加更多文本,我们将使用cat >> FILENAME
并输入我们想要使用的文本。
请注意,>> 运算符用于追加,而不是 > 运算符。
我们不必打开文本编辑器,而是能够从命令行创建一个快速简单的文本文件,从而节省了我们的时间和精力。
本节的主要内容是我们用于cat > FILENAME
创建或覆盖文件。此外,我们可以使用cat >> FILENAME
附加到已经存在的文件。然后在输入我们想要的文本后,我们使用 CTRL + D 退出编辑器,返回命令行并创建文件。
阅读彩虹
现在我们已经创建了一些东西,让我们来看看我们做了什么。
请注意,我们在以下命令中没有 > 或 >> 运算符,只有 cat 和文件名。
该命令cat foo.txt
将显示以下内容:
FILE 1
foo
bar
baz
所以cat foo.txt
让我们读取文件,但让我们看看我们还能做些什么。
假设我们想弄清楚我们正在处理的文件有多少行。为此, -n 选项会派上用场。
使用命令cat -n foo.txt
我们可以看到我们的文件有多长:
1 FILE 1
2 foo
3 bar
4 baz
使用 -n 我们可以了解我们正在使用的文件有多少行。当我们迭代一个固定长度的文件时,这可以派上用场。
连接文件
好的,所以我们已经看到 cat 可以创建和显示文件,但是连接(组合)它们呢?
在本例中,我们将使用文件 foo.txt 和 spam.txt。如果我们想看一看,我们可以同时查看两个文件的内容。我们将再次使用 cat 命令,这次使用cat foo.txt spam.txt
.
cat foo.txt spam.txt
结果如下:
FILE 1
foo
bar
baz
FILE 2
spam
ham
eggs
请注意,以上仅显示这两个文件。此时我们还没有将它们连接到一个新文件中。
要将文件连接到我们想要使用cat foo.txt spam.txt > fooSpam.txt
的新文件中,这会将结果提供给新文件 fooSpam.txt。
使用cat fooSpam.txt
将以下内容输出到终端:
FILE 1
foo
bar
baz
FILE 2
spam
ham
eggs
当我们想要将两个以上的文件连接成一个新文件时,此命令也很有用。
这里的要点是我们可以使用cat FILENAME1 FILENAME 2
.
此外,我们可以使用命令将多个文件连接到一个文件中 cat FILENAME1 FILENAME 2 > FILENAME3
。
与猫有关的其他有趣的事情
假设我们正在处理一个文件,并且由于某种原因在文件结束之前我们不断收到错误 - 看起来它的行数可能比我们预期的要多。
为了进一步研究该文件并可能解决我们的问题,我们可以使用 -A 开关。-A 选项将向我们显示行以 $ 结尾的位置,它将向我们显示带有 ^I 的制表符,它还显示其他非打印字符。
如果我们正在查看一个不可打印文本文件的示例,cat nonPrintExample.txt
我们可能会得到如下内容:
这没关系,但可能无法告诉我们可能导致我们出现问题的字符或字符串的完整故事。
而cat -A nonPrintExample.txt
可能会给我们更多有用的输出:
^I^I$
$
^L$
$
^G^H^H^H^Y^I^N^O^P^@$
^@^@^[g^[f^[d^[g^[6^[5^[4^[6^[=$
$
$
^X$
在这里,我们可以更清楚地表示制表符、换行符、回车符和其他字符之间可能发生的情况。
这里的要点是 cat -A FILENAME 可以告诉我们有关我们正在使用的文件的更深入的详细信息。
本文应该让您对 cat 命令、它可以做什么以及它的功能有一个很好的概述。