在 Linux 中使用 cat 命令
Cat 命令不仅仅可以用于显示文件内容。
cat命令用于打印文本文件的文件内容。
至少,大多数 Linux 用户都是这么做的,而且没有什么问题。
Cat 实际上代表“连接”,是为了合并文本文件而创建的。但只要有一个参数,它就会打印文件内容。因此,它是用户在终端中读取文件而无需任何其他选项的首选。
在Linux中使用cat命令
要使用 cat 命令,您必须遵循给定的命令语法:
cat [options] Filename(s)这里,
[options]用于修改 cat 命令的默认行为,例如使用-n选项获取每行的数字。文件名是您要输入要使用的文件的文件名的位置。
为了简单起见,我将在本指南中使用名为 Haruki.txt 的文本文件,其中包含以下文本行:
Hear the Wind Sing (1979)
Pinball, 1973 (1980)
A Wild Sheep Chase (1982)
Hard-Boiled Wonderland and the End of the World (1985)
Norwegian Wood (1987)
Dance Dance Dance (1990)
South of the Border, West of the Sun (1992)
The Wind-Up Bird Chronicle (1994)
Sputnik Sweetheart (1999)
Kafka on the Shore (2002)
After Dark (2004)
1Q84 (2009-2010)
Colorless Tsukuru Tazaki and His Years of Pilgrimage (2013)
Men Without Women (2014)
Killing Commendatore (2017)那么,在没有任何选项的情况下使用时,输出会是什么?好吧,让我们看一下:
cat Haruki.txt正如您所看到的,它打印了整个文本文件!
但您可以做的远不止这些。让我向您展示一些实际例子。
1.创建新文件
大多数 Linux 用户使用 touch 命令来创建新文件,但使用 cat 命令也可以完成相同的操作!
在这种情况下,cat 命令比 touch 命令有一个优势,因为您可以在创建文件时向文件添加文本。听起来很酷。不是吗?
为此,您必须使用 cat 命令,将文件名附加到 > 中,如下所示:
cat > Filename例如,在这里,我创建了一个名为 NewFile.txt 的文件:
cat > NewFile.txt一旦你这样做了,就会有一个闪烁的光标要求你写一些东西,最后,你可以使用Ctrl + d来保存更改。
如果您想创建一个空文件,只需按 Ctrl + d 即可,无需进行任何更改。
就是这样!现在,您可以使用 ls 命令来显示当前工作目录的内容:
2. 将文件内容复制到另一个文件
考虑一个场景,您要将 FileA 的文件内容重定向到 FileB
当然,您可以复制和粘贴。但是如果有数百或数千行怎么办?
简单的。您可以使用 cat 命令来重定向数据流。为此,您必须遵循给定的命令语法:
cat FileA > FileB如果使用上述语法重定向文件内容,它将删除 FileB 的文件内容,然后重定向 FileA 的文件内容。
例如,我将使用两个文本文件 FileA 和 FileB,其中包含以下内容:
现在,如果我使用从 FileA 到 FileB 的重定向,它将删除 FileB 的数据,然后重定向 FileA 的数据:
cat FileA > FileB同样,您可以对多个文件执行相同的操作:
cat FileA FileB > FileC可以看到,上面的命令删除了FileC的数据,然后重定向了FileA和FileB的数据。
将一个文件的内容附加到另一个文件
有时您想要将数据追加到现有数据中,在这种情况下,您必须使用 >> 而不是单个 >:
cat FileA >> FileB例如,在这里,我将把两个文件 FileA 和 FileB 重定向到 FileC:
cat FileA.txt FileB.txt >> FileC.txt正如您所看到的,它保留了 FileC.txt 的数据,并将数据附加在其末尾。
您可以使用
>>向现有文件添加新行。使用cat >> filename并开始添加所需的文本,最后使用Ctrl 保存更改+D.
4. 显示行数
您可能会遇到这样的情况,您想查看行数,这可以使用 -n 选项来实现:
cat -n File例如,在这里,我将 -n 选项与 Haruki.txt 一起使用:
5.删除空行
在文本文档中留下多个空白行? cat 命令将为您修复它!
为此,您所要做的就是使用 -s 标志。
但使用 -s 标志有一个缺点。你仍然留有一个空白:
正如您所看到的,它有效,但结果接近预期。
那么如何删除所有空行呢?通过管道将其传递给 grep 命令:
cat File | grep -v '^$'在这里,-v 标志将根据指定的模式过滤出结果,'^$' 是与空匹配的正则表达式线。
以下是我在 Haruki.txt 上使用它时的结果:
cat Haruki.txt | grep -v '^$'一旦获得完美的输出,您可以将其重定向到文件以保存输出:
cat Haruki.txt | grep -v '^$' > File这就是到目前为止你所学到的
以下是我在本教程中解释的内容的快速摘要:
cat <Filename>将文件内容打印到终端。
cat >File创建一个新文件。
cat FileA > FileBFileB的文件内容将被FileA覆盖。cat FileA >> FileBFileA的文件内容将附加到FileB的末尾。cat -n File显示行数,同时省略文件的文件内容。
cat File | more将 cat 命令通过管道连接到 more 命令以处理大文件。请记住,它不会让您向上滚动!
cat File | less将 cat 命令通过管道传输到 less 命令,这与上面类似,但它允许您双向滚动。
cat File | grep -v '^$'从文件中删除所有空行。
?️是时候锻炼身体了
如果你学到了新东西,用不同的可能性来执行它是最好的记忆方式。
为此,您可以使用 cat 命令进行一些简单的练习。它们将是超级基本的,因为 cat 也是最基本的命令之一。
出于练习目的,您可以使用 GitHub 上的文本文件。
如何使用 cat 命令创建一个空文件?
将 cat 命令生成的输出重定向到新文件
IF.txt您可以将三个或更多文件输入重定向到一个文件吗?如果是,那么如何?










