200字
cat
2025-10-10
2025-10-10

"Concatenate" 的缩写,是一个用于连接文件内容并打印到标准输出(终端) 的命令行工具,也常用于创建、查看、合并文件或向文件写入内容。

该命令是Linux中最基础的文本处理工具之一,功能简洁但灵活,可快速查看文件内容、拼接多个文件、生成简单文本文件或在脚本中处理文本流。

 cat [选项] <文件1> <文件2> ...

常用选项

  • -n:"number all output lines",为输出的每一行编号(包括空白行),例如 cat -n config.ini 显示配置文件内容并在每行前添加行号,便于定位特定行。

  • -b:"number nonempty output lines",仅为非空白行编号,例如 cat -b notes.txt 对笔记中实际内容行编号,忽略空行编号,适合阅读结构化文本。

  • -s:"squeeze multiple adjacent empty lines",压缩连续的空白行(将多行空行合并为一行),例如 cat -s report.txt 精简文档中的多余空行,使内容更紧凑。

  • -E:"display $ at end of each line",在每行末尾显示 $ 符号,例如 cat -E script.sh 可清晰区分行尾和空格,排查脚本中因换行符导致的语法错误。

  • -T:"display tab characters as ^I",将制表符(Tab)显示为 ^I,例如 cat -T data.csv 查看表格文件中字段分隔是否为Tab而非空格,避免格式混淆。

  • -v:"display nonprinting characters",显示非打印字符(除换行符和Tab外),例如 cat -v log.txt 排查日志中隐藏的控制字符或乱码问题。

  • -A:"equivalent to -vET",等效于 -vET 的组合选项,同时显示行尾 $、Tab为 ^I 及非打印字符,例如 cat -A messy.txt 全面检查文本格式问题。

  • --help:显示帮助信息,列出所有选项及用法说明。

  • --version:显示命令版本信息。

参考示例

  • 示例1:查看单个文件内容 执行 cat README.md,在终端直接打印 README.md 文件的全部内容,适合快速浏览短文本文件。

  • 示例2:为文件内容添加行号 执行 cat -n error.log,显示日志内容时在每行前添加数字编号,便于讨论或记录特定行的位置(如“第25行出现错误”)。

  • 示例3:合并多个文件内容到新文件 执行 cat part1.txt part2.txt part3.txt > complete.txt,将三个文件的内容按顺序拼接并写入 complete.txt,适合整合拆分的文档。

  • 示例4:向文件追加内容 执行 cat >> todo.txt,进入输入模式,输入内容后按 Ctrl+D 结束,输入的内容会追加到 todo.txt 末尾(而非覆盖),适合临时添加内容。

  • 示例5:创建简单文本文件 执行 cat > greeting.txt,输入 Hello, World! 后按 Ctrl+D,生成包含该内容的 greeting.txt 文件,比使用编辑器更快捷。

  • 示例6:检查文本格式问题 执行 cat -A config.yaml,通过显示行尾 $、Tab为 ^I 及隐藏字符,排查YAML配置文件中因缩进(空格vsTab)或换行符导致的解析错误。

  • 示例7:在脚本中读取文件内容并处理 脚本中执行 cat /etc/passwd | grep "bash",通过管道将用户信息文件内容传递给 grep,筛选出使用bash作为默认shell的用户。

  • 示例8:显示多个文件内容并添加文件名标识 虽然 cat 本身不直接支持,但结合 nl 或脚本可实现:for file in *.txt; do echo "=== $file ==="; cat "$file"; done,在每个文件内容前显示文件名,便于区分多文件输出。

  • 示例9:清空文件内容(保留文件本身) 执行 cat /dev/null > access.log,将空设备的内容(空)写入日志文件,快速清空文件而不删除文件(保留权限和inode信息),适合重置日志文件。

说明cat 不适合查看超大文件(如GB级日志),因为会瞬间输出大量内容导致终端卡顿,此时应使用 lessmore 分页查看。此外,cat 读取二进制文件可能导致终端乱码,需谨慎使用。

评论