From 63e0fbf4c83a2274ebc5f44ca2407c3de158a1ba Mon Sep 17 00:00:00 2001 From: ZhuangZhu-74 <49544524+ZhuangZhu-74@users.noreply.github.com> Date: Thu, 26 Sep 2019 17:23:30 +0800 Subject: [PATCH] Update cat.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 更新文档内容。 --- command/cat.md | 77 ++++++++++++++++++++++++++++++++++---------------- 1 file changed, 53 insertions(+), 24 deletions(-) diff --git a/command/cat.md b/command/cat.md index 099e0d26dc..c4753aee2c 100644 --- a/command/cat.md +++ b/command/cat.md @@ -1,44 +1,73 @@ cat === -连接文件并打印到标准输出设备上 +连接多个文件并打印到标准输出。 -## 补充说明 - -**cat命令** 连接文件并打印到标准输出设备上,cat经常用来显示文件的内容,类似于下的type命令。 - -注意:当文件较大时,文本在屏幕上迅速闪过(滚屏),用户往往看不清所显示的内容。因此,一般用more等命令分屏显示。为了控制滚屏,可以按Ctrl+S键,停止滚屏;按Ctrl+Q键可以恢复滚屏。按Ctrl+C(中断)键可以终止该命令的执行,并且返回Shell提示符状态。 - -### 语法 +## 概要 ```shell -cat(选项)(参数) +cat [OPTION]... [FILE]... ``` -### 选项 +## 主要用途 + +- 显示文件内容,如果没有文件或文件为`-`则读取标准输入。 +- 将多个文件的内容进行连接并打印到标准输出。 +- 显示文件内容中的不可见字符(控制字符、换行符、制表符等)。 + +## 参数 + +FILE(可选):要处理的文件,可以为一或多个。 + +## 选项 ```shell --n或--number:从1开始对所有输出的行数编号; --b或--number-nonblank:和-n相似,只不过对于空白行不编号; --s或--squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行; --A:显示不可打印字符,行尾显示“$”; --e:等价于"-vE"选项; --t:等价于"-vT"选项; +长选项与短选项等价 + +-A, --show-all 等价于"-vET"组合选项。 +-b, --number-nonblank 只对非空行编号,从1开始编号,覆盖"-n"选项。 +-e 等价于"-vE"组合选项。 +-E, --show-ends 在每行的结尾显示'$'字符。 +-n, --number 对所有行编号,从1开始编号。 +-s, --squeeze-blank 压缩连续的空行到一行。 +-t 等价于"-vT"组合选项。 +-T, --show-tabs 使用"^I"表示TAB(制表符)。 +-u POSIX兼容性选项,无意义。 +-v, --show-nonprinting 使用"^"和"M-"符号显示控制字符,除了LFD(line feed,即换行符'\n')和TAB(制表符)。 + +--help 显示帮助信息并退出。 +--version 显示版本信息并退出。 ``` -### 参数 +## 返回值 -文件列表:指定要连接的文件列表。 +返回状态为成功除非给出了非法选项或非法参数。 -### 实例 - -设m1和m2是当前目录下的两个文件 +## 例子 ```shell -cat m1 (在屏幕上显示文件m1的内容) -cat m1 m2 (同时显示文件m1和m2的内容) -cat m1 m2 > file (将文件m1和m2合并后放入文件file中) +# 合并显示多个文件 +cat ./1.log ./2.log ./3.log +# 显示文件中的非打印字符、tab、换行符 +cat -A test.log +# 压缩文件的空行 +cat -s test.log +# 显示文件并在所有行开头附加行号 +cat -n test.log +# 显示文件并在所有非空行开头附加行号 +cat -b test.log +# 将标准输入的内容和文件内容一并显示 +echo '######' |cat - test.log ``` +### 注意 + +1. 该命令是`GNU coreutils`包中的命令,相关的帮助信息请查看`man -s 1 cat`或`info coreutils 'cat invocation'`。 +2. 当使用`cat`命令查看**体积较大的文件**时,文本在屏幕上迅速闪过(滚屏),用户往往看不清所显示的内容,为了控制滚屏,可以按`Ctrl+s`键停止滚屏;按`Ctrl+q`键恢复滚屏;按`Ctrl+c`(中断)键可以终止该命令的执行,返回Shell提示符状态。 +3. 建议您查看**体积较大的文件**时使用`less`、`more`命令或`emacs`、`vi`等文本编辑器。 + +### 参考链接 + +1. [Question about LFD key](https://superuser.com/questions/328054/is-there-an-lfd-key-on-my-keyboard)