在 Linux 中使用 cat 命令
创始人
2024-03-02 16:30:31
0

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

cat 命令用于打印文本文件的文件内容。至少,大多数 Linux 用户都是这么做的,而且没有什么问题。

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

在 Linux 中使用 cat 命令

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

cat [options] Filename(s)

这里:

  • [options] 用于修改 cat 命令的默认行为,例如使用 -n 选项获取每行的数字。
  • Filename 是你输入要使用的文件的文件名的位置。

为了简单起见,我将在本指南中使用名为 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

use cat command in Linux

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

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

1、创建新文件

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

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

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

cat > Filename

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

cat > NewFile.txt

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

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

Using cat command

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

use the ls command to list the contents of the current working directory

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

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

当然,你可以复制和粘贴。但是如果有几百或几千行怎么办?

简单。你可以使用 cat 命令来重定向数据流。为此,你必须遵循给定的命令语法:

cat FileA > FileB

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

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

check the file contents using the cat command

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

cat FileA > FileB

redirect the file content using the cat command

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

cat FileA FileB > FileC

redirect file content of multiple files using the cat command

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

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

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

cat FileA >> FileB

例如,在这里,我将把两个文件 FileAFileB 重定向到 FileC

cat FileA.txt FileB.txt >> FileC.txt

redirect file content without overriding using the cat command

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

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

4、显示行数

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

cat -n File

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

get the number of the lines in the cat command

5、删除空行

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

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

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

remove blank lines with the cat command

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

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

cat File | grep -v '^$'

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

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

cat Haruki.txt | grep -v '^$'

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

cat Haruki.txt | grep -v '^$' > File

save output of cat command by redirection

这就是你到目前为止所学到的

以下是我在本教程中解释的内容的快速摘要:

命令描述
cat 将文件内容打印到终端。
cat >File创建一个新文件。
cat FileA > FileBFileB 的文件内容将被 FileA 覆盖。
cat FileA >> FileBFileA 的文件内容将附加到 FileB 的末尾。
cat -n File显示行数,同时省略文件的文件内容。
`cat Filemore`
`cat Fileless`
`cat Filegrep -v ‘^$'`

?️ 练习时间

如果你学到了新东西,用不同的可能性来执行它是最好的记忆方式。

为此,你可以使用 cat 命令进行一些简单的练习。它们将是超级基本的,就像 cat 一样是最基本的命令之一

出于练习目的,你可以 使用 GitHub 上的文本文件

  • 如何使用 cat 命令创建空文件?
  • cat 命令生成的输出重定向到新文件 IF.txt
  • 能否将三个或更多文件输入重定向到一个文件? 如果是,该如何做?

(题图:MJ/f06c9b9c-689e-4a67-abe9-0487e26bd34b)


via: https://itsfoss.com/cat-command/

作者:Sagar Sharma 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

cat

相关内容

美团开源SOTA级虚拟人模...
消息面上,美团LongCat团队正式发布并开源SOTA级虚拟人视频...
2025-12-19 14:46:30
美团宣布开源LongCat...
钛媒体App 12月8日消息,美团LongCat团队正式发布并开源...
2025-12-09 09:45:32
AI进化速递丨美团发布Lo...
①美团发布LongCat-Image图像生成模型; ②智元第500...
2025-12-08 23:15:39
美团发布LongCat-I...
IT之家 12 月 8 日消息,今日,美团 LongCat 团队正...
2025-12-08 10:46:15
AI进化速递 | 马斯克推...
①百度AI眼镜将于11月1日预售; ②MiniMax发布Hailu...
2025-10-28 21:45:21
美团发布开源LongCat...
IT之家 10 月 27 日消息,今天上午,美团 LongCat ...
2025-10-27 11:44:43

热门资讯

2020 年的 GitHub ... 距离 2020 年结束只剩下区区 24 天,我们即将结束魔幻的 2020 ,迎来新的一年,新的一年或...
开源新闻速递:openSUSE... 今日关注openSUSE 项目组的 Dominique Leuenberger 在他的周报中说:“这...
KDE4.11 Beta1 正...   KDE 项目工作组刚刚发布了 KDE Software Compilation 4.11 Bet...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
使用时间序列数据,用开源工具助... InfluxData 是一个开源的时间序列数据库平台。下面介绍了它是如何被用于边缘应用案例的。收集到...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
Textual:为 Pytho... 快速入门使用 TextualPython 在 Linux 上有像 TkInter 这样的优秀 GUI...
硬核观察 #1245 Open... #1 OpenAI 悄然删除禁止将 ChatGPT 用于 “军事和战争” 的禁令在 1 月 10 日...