在linux中,cat命令可以用于查看文件的内容,而不需要在任何文本编辑器中打开它,也可以把几个文件内容附加到另一个文件中,即连接合并文件。查看文件内容时,如果在包含文件的同一目录中,则语法为“cat [option] [filename]…”;如果在其他目录下,则语法为“cat [option] [path/to/file]…”。
程序员必备接口测试调试工具:立即使用
Apipost = Postman + Swagger + Mock + Jmeter
Api设计、调试、文档、自动化测试工具
后端、前端、测试,同时在线协作,内容实时同步
本教程操作环境:Ubuntu 18.04系统、Dell G3电脑。
linux中cat命令介绍
Cat命令(concatenate的缩写)是Linux操作系统中使用最广泛的命令行实用工具之一。它是一个标准的Linux实用程序,用于查看文件的内容,而不需要在任何文本编辑器中打开它。cat命令的另一个主要用法是将多个文件串联到一个文件中。在Linux中还有其他几种cat命令的用法,我们将在本文中讨论这些用法,以便您了解它在不同场景中的工作方式。
以下是cat命令的一些基本功能:
- 显示文件内容
- 创建新文件
- 合并文件
- 复制文件内容
注意,我们使用Ubuntu 18.04 LTS操作系统来演示本文中提到的命令和过程。
基本语法
使用Cat命令的基本语法是:
cat [option] [filename]...
如果您在包含文件的同一目录中,请使用上面的命令。否则,如果你在其他目录下,请按如下说明该文件的路径:
cat [option] [path/to/file]...
如果想要连接合并文件
cat filename1 filename2 > filename3
cat 命令常用选项及含义
选项 | 含义 |
---|---|
-A | 相当于 -vET 选项的整合,用于列出所有隐藏符号; |
-E | 列出每行结尾的回车符 $; |
-n | 对输出的所有行进行编号; |
-b | 同 -n 不同,此选项表示只对非空行进行编号。 |
-T | 把 Tab 键 ^I 显示出来; |
-V | 列出特殊字符; |
-s | 当遇到有连续 2 行以上的空白行时,就替换为 1 行的空白行。 |
注意,cat 命令用于查看文件内容时,不论文件内容有多少,都会一次性显示。如果文件非常大,那么文件开头的内容就看不到了。不过 Linux 可以使用PgUp+上箭头
组合键向上翻页,但是这种翻页是有极限的,如果文件足够长,那么还是无法看全文件的内容。
cat命令的使用示例
显示文件内容
cat命令最常见和最基本的用法是显示文件内容。 为了将文件内容显示到终端,只需键入cat和文件名,如下所示:
[linuxmi@linux:~/linuxmi迷]$ cat linuxmi.txt
一个示例是显示 /etc/hostname文件的内容。 在这种情况下,命令将是:
[linuxmi@linux:~/linuxmi迷]$ cat /etc/hostname
显示所有文件的内容
要显示当前目录中的所有文件,请在cat命令中使用通配符,如下所示:
[linuxmi@linux:~/linuxmi迷]$ cat *
要仅显示目录中文本文件的内容,请输入以下命令:
[linuxmi@linux:~/linuxmi迷]$ cat *.txt
一次显示多个文件
您还可以使用cat命令在终端中组合并显示多个文件的内容。 要同时显示多个文件,请使用以下语法:
[linuxmi@linux:~/linuxmi迷]$ cat /etc/hostname /etc/resolv.conf linuxmi1.txt
一个示例是在终端中查看所有三个文件/etc/hostname、/etc/resolv.conf、linuxmi1的输出,如以下屏幕快照所示:
将一个文件的输出复制到另一个文件
它还可以用于将一个文件的输出复制到另一文件。如果目标文件不存在,它将首先创建它,否则将覆盖目标文件。
要将源文件的输出复制到另一个文件,请使用以下语法:
$ Cat [源文件] > [目标文件]
例如,将一个linuxmi1.txt的输出复制到另一个名为linuxmi2.txt的文件中,如下所示:
$ cat linuxmi1.txt > linuxmi2.txt
此命令将首先创建文件linuxmi2.txt,然后将linuxmi1.txt的内容复制到该文件。
将文件输出附加到另一个文件
除了在上面的示例中覆盖目标文件的输出外,还可以使cat命令附加输出。以下语法可用于此目的:
$ cat [源文件] >> [目标文件]
如果目标文件尚不存在,它将创建目标文件,否则将附加输出。
将多个文件复制到另一个文本文件/拼接文件
cat命令的另一个主要用途是可以将多个文件拼接为一个文件。可以使用以下语法来拼接linuxmi1,linuxmi2和linuxmi3并将它们保存到另一个名为linuxmi4.txt的文件中。
$ cat [linuxmi1] [linuxmi2] [linuxmi3] > [linuxmi4]
例如,我们要将/etc/hostname、/etc/resolv.conf和/etc/hosts文件的输出连接到另一个名为linuxmi.txt的文件。以下命令可用于此目的:
$ cat /etc/hostname /etc/resolv.conf /etc/hosts > linuxmi.txt
在文件中显示行号
要显示文件输出的行号,只需使用–n标志即可:
$ cat -n linuxmi.py
表的文件,则可以使用–n标志显示带有数字的项目。请记住,空行也已编号,如以下屏幕截图所示:
如果您不想给空行编号,请使用–b标志,如下所示:
$ cat –b linuxmi.py
建立档案
您还可以使用cat命令创建文件。以下语法可用于此目的:
$ cat > linuxmi
输入上述命令后,输入要存储在文件中的文本。完成后,使用Ctrl + D保存并退出。之后,可以在终端中执行以下命令来查看新创建文件的内容:
$ cat linuxmi
如下图:
排序输出
您还可以将sort与cat命令结合使用,以按字母顺序对输出进行排序,如下所示:
$ cat linuxmi | sort
同样,在有多个文件的情况下,可以按字母顺序将输出连接到一个文件中:
$ cat [linuxmi1] [linuxmi2] | sort > [linuxmi3]
删除连续的空行
有时文件包含您不想打印的连续的空行。 Cat命令允许合并那些连续的空行,并将它们显示为一个空行。
使用以下命令语法删除重复的空行:
$ cat –s [linuxmi]
例如,我们有以下文件,其中包含连续的空行。
通过使用-s标志,您将看到区别。
显示制表符
$ cat –t [linuxmi]
使用-t选项可以显示的查看内容中哪些地方使用了tab制表符,有制表符的地方会显示为^I
打印文件输出
cat命令的另一种流行用法是在文档的打印内容中。例如,要将文件的输出打印到名为/dev/lp的打印设备上,将使用以下语法:
$ cat [linuxmi] > /dev/lp