在 Linux 中使用 cat 命令 | Linux 中国

有没有人在啊,想请讲解下,在 Linux 中使用 cat 命令 | Linux 中国
最新回答
狗屎味的小仙女

2024-09-30 05:56:23

cat 命令的用途不仅仅是显示文件内容。

cat 命令用于打印文本文件的文件内容。大多数 Linux 用户都是这么使用的,而且效果很好。

cat 实际上代表 “连接(concatenate)”,创建它是为了合并文本文件。但只要有一个参数,它就会打印文件内容。因此,它是用户在终端中读取文件而无需任何其他选项的首选。

要使用cat命令,你必须遵循给定的命令语法:

为了简单起见,我将在本指南中使用名为Haruki.txt的文本文件,其中包含以下文本行:

那么,在没有任何选项的情况下使用时,输出会是什么?好吧,让我们看一下:

正如你所看到的,它打印了整个文本文件!

但你可以做的远不止这些。让我向你展示一些实际例子。

1、创建新文件

大多数 Linux 用户使用touch命令来创建新文件,但使用cat命令也可以完成相同的操作!

在这种场景下,cat命令比touch命令有一个优势,因为你可以在创建文件时向文件添加文本。听起来很酷。不是吗?

为此,你需要使用cat命令,将文件名附加到 > 后面,如下所示:

例如,在这里,我创建了一个名为NewFile.txt的文件:

当你这样做了,就会有一个闪烁的光标要求你写一些东西,最后,你可以使用Ctrl + d来保存更改。

如果你想创建一个空文件,则只需按Ctrl + d而不进行任何更改。

这就好了!现在,你可以使用ls命令来显示当前工作目录的内容:

2、将文件内容复制到另一个文件

考虑一个场景,你要将FileA的文件内容重定向到FileB。

当然,你可以复制和粘贴。但是如果有几百或几千行怎么办?简单。你可以使用cat命令来重定向数据流。为此,你必须遵循给定的命令语法:

如果使用上述语法重定向文件内容,它将删除FileB的文件内容,然后重定向FileA的文件内容。

例如,我将使用两个文本文件FileA和FileB,其中包含以下内容:

现在,如果我使用从FileA到FileB的重定向,它将删除FileB的数据,然后重定向FileA的数据:

同样,你可以对多个文件执行相同的操作:

可以看到,上面的命令删除了FileC的数据,然后重定向了FileA和FileB的数据。

3、将一个文件的内容附加到另一个文件

有时你想要将数据附加到现有数据,在这种情况下,你必须使用>>而不是单个>:

例如,在这里,我将把两个文件FileA和FileB重定向到FileC:

如你所见,它保留了FileC.txt的数据,并将数据附加在末尾。

你可以使用>>向现有文件添加新行。使用cat >> filename并开始添加所需的文本,最后使用Ctrl+D保存更改。

4、显示行数

你可能会遇到这样的情况,你想查看行数,这可以使用-n选项来实现:

例如,在这里,我将-n选项与Haruki.txt一起使用:

5、删除空行

在文本文档中留下多个空白行?cat命令将为你修复它!

为此,你所要做的就是使用-s标志。

但使用-s标志有一个缺点。你仍然留有一行空白:

正如你所看到的,它有效,但结果接近预期。

那么如何删除所有空行呢?通过管道将其传递给grep命令:

这里,-v标志将根据指定的模式过滤掉结果,'^$'是匹配空行的正则表达式。

以下是我在Haruki.txt上使用它时的结果:

当获得完美的输出,你可以将其重定向到文件以保存输出: