Linux cat 命令完全掌握:实战必备的 5 个核心选项与执行结果全解析

概述

在 Linux 环境中,快速查看和合并文本文件内容最常用的基础工具就是 cat 命令。除了简单的文件浏览外,显示行号、压缩连续空行、可视化特殊字符等核心选项更能大幅提升实际工作效率。本文将在 Ubuntu 实践环境中直接验证这些功能,通过对比各个选项的行为差异与实际终端输出结果,助你进一步提升终端生产力。

1. 创建实战测试文本文件及基础查看

为了测试 cat 命令的各种选项,我们先创建一个包含连续空行、制表符(Tab)和行尾空格的 sample.txt 文件。

printf ‘First line\n\n\nSecond line with tab:\t[TAB]\nThird line with trailing space   \n’ > sample.txt

cat 命令会将指定文件的内容原样输出到终端屏幕上。
在不带任何选项运行时,将直接显示文件的原始文本。
⚙️ [核心选项]

-n : 在所有行(包括空行)的开头添加行号并输出。
-b : 仅对非空行添加行号并输出。
-s : 将连续两个及以上的空行压缩为一个空行显示。
-E : 在每行末尾显示表示换行符的 $ 符号。
-T : 将制表符(Tab)所在位置显示为 ^I 符号以便于直观区分。

cat sample.txt

2. 行号显示选项对比 (-n vs -b)

cat -n sample.txt 命令会为文件的所有行添加行号并输出。
即使是没有文本的空行(第 2 行、第 3 行)也会包含在内,非常适合查看整体文本结构与行位置。

cat -n sample.txt

cat -b sample.txt 命令仅对非空行添加行号并输出。
无内容的空行会被跳过不计入编号,因此非常适合快速统计实际有效数据行的数量。

cat -b sample.txt

3. 压缩连续空行以提升可读性 (-s)

cat -s sample.txt 命令将连续出现的多个空行压缩为单一空行输出。
通过减少不必要的过长空白间距,可以有效提升整体文本的可读性。

cat -s sample.txt

cat -ns sample.txt 命令在压缩连续空行的同时,为所有行添加行号并输出。
可以一目了然地掌握压缩后的总行数及文本的具体位置。

cat -ns sample.txt

4. 可视化不可见特殊字符与换行/制表符 (-E, -T, -A)

cat -E sample.txt 命令在每行末尾(换行位置)显示 $ 符号并输出。
可以直观排查行尾是否存在不可见的空白字符(Trailing Space)或多余的换行。

cat -E sample.txt

cat -T sample.txt 命令将制表符(Tab)替换为 ^I 符号并显示在屏幕上。
能够清晰区分普通空格与制表符,在检查代码或配置文件的缩进错误时非常高效。

cat -T sample.txt

cat -A sample.txt 命令可视化输出所有隐藏的特殊控制字符、换行以及制表符。
其行为等同于整合了 -vET 选项,可同时显示制表符(^I)与换行符($),非常适合一次性排查不可见字符引发的格式 Bug。

cat -A sample.txt

5. 合并多个文件与利用 EOF 编写文件的进阶技巧

为了进行文件合并实践,先创建一个包含头部信息的 header.txt 文件。

echo ‘Header Info’ > header.txt

cat header.txt sample.txt > merged.txt 命令按顺序拼接 header.txt 和 sample.txt 两个文件的内容,并保存为新的 merged.txt 文件。
在将多个文本文件合并为一个,或在文档开头添加前言/标头时非常实用。

cat header.txt sample.txt > merged.txt

cat << 'EOF' > append_test.txt 命令使用 Here Document 语法,将直到输入 EOF 为止的多行内容直接写入并创建 append_test.txt 文件。
无需打开编辑器即可在 Shell 环境中快速编写多行文本到文件,非常便捷。

cat « ‘EOF’ > append_test.txt
Line A
Line B
EOF

cat merged.txt append_test.txt 命令将前面创建的 merged.txt 和 append_test.txt 内容依次拼接并在终端屏幕上输出。
可以一目了然地确认合并后的整体数据流与顺序是否正确无误。

cat merged.txt append_test.txt

以上便全面总结了 Linux cat 命令的基础概念、实战中常用的 5 个核心选项以及执行结果。
希望你能根据实际场景灵活运用这些选项,进一步提升终端环境下的文件查看与操作效率。