cat 命令在 Linux 上的工作原理

cat是 concatenate 的缩写,用于 Linux 和基于 Unix 的系统(如 MacOS)上,用于读取文件的内容、将内容与其他文件连接,以及创建新的连接文件。它也经常用于复制文件的内容。

cat 的语法 如下所示,其中x是文件名,并且[OPTIONS]是改变cat工作方式的可选设置。

cat [OPTIONS] x

在 Linux 或 MacOS 上使用 cat 获取文件的内容#

使用该cat命令和一个文件名,我们可以获得文件的整个文本内容。例如,以下命令会将 的内容输出my-file.txt到终端:

cat my-file.txt

类似地,我们可以看到很多文件的内容,用空格隔开。例如,下面一行将my-file.txt, 和my-new-file.txt的内容合并,并在终端中显示:

cat my-file.txt my-new-file.txt

在 Linux 或 MacOS 上获取带有行号的文件的内容

我们可以使用该选项-n来显示行号。例如下面的命令合并我们的两个文件,my-file.txt 和my-new-file.txt, 并排​​输出带有行号的内容。这对于比较文件非常有用。

cat -n my-file.txt my-new-file.txt

输出将如下所示:

1	Content from my-file.txt     1	Some more content from my-new-file.txt

在 Linux 和 MacOS 上将两个文件连接成一个新文件#

由于 concatenate 可以输出两个文件的内容,我们可以>再次使用 concatenate 将两个文件合并成一个全新的文件。下面的示例采用 my-file.txt 和 my-new-file.txt,合并它们的内容,并将其放入一个名为my-combined-file.txt的新文件中:

cat my-file.txt my-new-file.txt > my-combined-file.txt

使用 Linux 或 MacOS 将内容从一个文件放入另一个文件#

如果我们只想将一个文件的内容放在另一个文件的末尾,我们可以使用>>. 例如,以下命令将从 my-file.txt 中获取内容,并将其放在 my-new-file.txt 的末尾,从而将两个文件合并到 my-new-file.txt 中:

cat my-file.txt >> my-new-file.txt

行号

注意:如果您使用或>>选项,行号也将合并到您的新连接文件中!>-n

在 Linux 或 MacOS 上使用 cat 创建一个空文件#

由于使用 . 创建文件非常容易,因此cat我们经常使用它来创建新文件。例如,下面的代码将创建一个名为my-file.txt的空白文件,因为我们将一个空白字符串连接到其中:

cat > my-file.txt

如何在 Linux 或 MacOS 上显示不可打印的字符#

某些文档或文件可能包含不可打印的字符。这些用于向应用程序发出文件应该如何格式化的信号 – 但它们有时会弄乱文件的格式。要在使用 时显示不可打印的字符cat,我们可以使用该-v选项。这将使用插入符号显示所有不可打印的字符,以便我们可以轻松查看它们。

cat -v my-file.txt

不可打印字符

不可打印字符是诸如字符编码之类的信号。您可以在此处找到不可打印的完整列表,以及 cat 使用的插入符号

Linux 或 MacOS 上 cat 的所有选项#

还有许多其他选项可以帮助我们使用cat来获得我们想要的输出。我们已经讨论-n了获取行号和-v不可打印字符,但这里是其他的:

  • -b– 仅编号非空输出行,覆盖-n.
  • -E$在每一行的末尾显示一个。
  • -s– 抑制重复的空行。
  • -T– 将选项卡显示为^I,以便轻松将它们与空格区分开来。
  • -A– 相当于写作-vET

发表评论

邮箱地址不会被公开。 必填项已用*标注