Contents

命令学习-cat

cat 命令用来连接多个文件并打印到标准输出。

语法

cat [OPTION]... [FILE]...

主要用途

  • 显示文件内容,如果没有文件或文件为 - 则读取标准输入。
  • 将多个文件的内容进行连接并打印到标准输出。
  • 显示文件内容中的不可见字符(控制字符、换行符、制表符等)。

参数

  • FILE(可选):要处理的文件,可以为一或多个。

选项

(长选项与短选项等价)

  • -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:显示版本信息并退出。

返回值

返回状态为成功除非给出了非法选项或非法参数。

例子

  1. 合并显示多个文件
1
cat ./1.log ./2.log ./3.log

将 ./1.log、./2.log 和 ./3.log 文件的内容合并并显示。

  1. 显示文件中的非打印字符、tab、换行符
1
cat -A test.log

显示文件 test.log 中的所有不可见字符、tab(制表符)和换行符。

  1. 压缩文件的空行
1
cat -s test.log

将 test.log 中的连续空行压缩为一行。

  1. 显示文件并在所有行开头附加行号
1
cat -n test.log

在 test.log 文件的每一行前添加行号。

  1. 显示文件并在所有非空行开头附加行号
1
cat -b test.log

仅在 test.log 文件中的非空行前添加行号。

  1. 将标准输入的内容和文件内容一并显示
1
echo '######' | cat - test.log

显示标准输入的内容和文件 test.log 的内容。

注意

cat 命令是 GNU coreutils 包中的命令,相关的帮助信息请查看 man -s 1 cat 或 info coreutils ‘cat invocation’。 当使用 cat 命令查看体积较大的文件时,文本在屏幕上迅速滚动,用户可能看不清所显示的内容。为了控制滚屏,可以按 Ctrl+s 键停止滚屏;按 Ctrl+q 键恢复滚屏;按 Ctrl+c(中断)键可以终止该命令的执行,返回 Shell 提示符状态。 查看体积较大的文件时,建议使用 less、more 命令或 emacs、vi 等文本编辑器。