Linux中的cat命令

时间:2020-03-05 15:28:26  来源:igfitidea点击:

cat命令是Linux中使用最广泛的命令之一。
“ cat”命令的名称来自其连接文件的功能。
它可以读取和连接文件,并将其内容写入标准输出。
如果未指定文件,或者输入文件名指定为单个连字符('-'),则它将从标准输入中读取。

Cat最常用于显示一个或者多个文本文件的内容,通过将一个文件的内容添加到另一个文件的末尾来组合文件,以及创建新文件。

在本教程中,我们将通过实际示例向我们展示如何使用cat命令。

cat命令语法

在开始使用cat命令之前,我们先回顾一下基本语法。

cat实用程序表达式采用以下形式:

cat [OPTIONS] [FILE_NAMES]
  • 'OPTIONS'-cat选项。

使用'cat --help'查看所有可用选项。

  • 'FILE_NAMES'-零个或者多个文件名。

显示文件内容

cat命令最基本,最常见的用法是读取文件的内容。

例如,以下命令将在终端中显示“/etc/issue”文件的内容:

cat /etc/issue

重定向文件内容

我们可以将其重定向到文件,而不是将输出显示到stdout(在屏幕上)。

以下命令将使用('>')运算符将'file1.txt'的内容复制到'file2.txt'中:

cat file1.txt > file2.txt

通常,我们将使用“ cp”命令来复制文件。

如果“ file2.txt”文件不存在,该命令将创建它。
否则,它将覆盖文件。

使用('>>')运算符将'file1.txt'的内容添加到'file2.txt':

cat file1.txt >> file2.txt

与以前相同,如果文件不存在,将创建该文件。

打印行号

要显示带有行号的文件内容,请使用'-n'选项:

cat -n /etc/lsb-release
1	DISTRIB_ID=Ubuntu
2	DISTRIB_RELEASE=18.04
3	DISTRIB_CODENAME=bionic
4	DISTRIB_DESCRIPTION="Ubuntu 18.04.1 LTS"

禁止重复的空行

使用'-s'选项可以省略重复的空输出行:

cat -s file.txt

显示TAB字符

“ -T”选项使我们可以在视觉上区分制表符和空格。

cat -T /etc/hosts
127.0.0.1^Ilocalhost
127.0.1.1^Iubuntu1804.localdomain

TAB字符将显示为'^ I'。

显示行尾

要显示不可见的行结束符,请使用'-e'参数:

cat -e /etc/lsb-release
DISTRIB_ID=Ubuntu$
DISTRIB_RELEASE=18.04$
DISTRIB_CODENAME=bionic$
DISTRIB_DESCRIPTION="Ubuntu 18.04.1 LTS"$

行尾将显示为'$'。

串联文件

当将两个或者多个文件名作为'cat'命令的参数传递时,文件的内容将串联在一起。
“ cat”按照其参数中给出的顺序读取文件,并以相同的顺序显示文件的内容。

例如,以下命令将读取“ file1.txt”和“ file2.txt”的内容,并在终端中显示结果:

cat file1.txt file2.txt

我们可以串联两个或者多个文本文件并将其写入文件。

以下命令将连接“ file1.txt”和“ file2.txt”的内容,并使用('>')运算符将它们写入新文件“ combinedfile.txt”:

cat file1.txt file2.txt > combinedfile.txt

如果“ combinedfile.txt”文件不存在,该命令将创建该文件。
否则,它将覆盖文件。

要串联“ file1.txt”和“ file2.txt”的内容并将结果添加到“ file3.txt”以使用('>>')运算符:

cat file1.txt file2.txt >> file3.txt

如果文件不存在,将创建它。

用'cat'连接文件时,可以使用上一节中所示的相同参数。

创建文件

使用“ cat”创建小文件通常比打开文本编辑器(例如nano,Vim,Sublime Text或者Visual Studio Code)容易。

要创建新文件,请使用“ cat”命令,后跟重定向运算符('>')和要创建的文件的名称。
按“ Enter”,输入文本,完成后,按“ CRTL + D”保存文件。

在以下示例中,我们将创建一个名为'file1.txt'的新文件:

cat > file1.txt

如果存在名为“ file1.txt”的文件,它将被覆盖。
使用''>>'运算符将输出添加到现有文件。

cat >> file1.txt