Linux中的cat命令
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