cat 命令 #
cat
命令(concatenate)用于连接文件并打印到标准输出。它可以用来显示文件内容、创建新文件、合并文件等。
语法 #
cat [选项] [文件...]
常用选项 #
选项 | 描述 |
---|---|
-A, --show-all |
等同于-vET,显示所有控制字符 |
-b, --number-nonblank |
对非空行编号 |
-e |
等同于-vE,显示行尾标记 |
-E, --show-ends |
在每行结尾显示$符号 |
-n, --number |
对所有行编号 |
-s, --squeeze-blank |
压缩连续的空行为一行 |
-t |
等同于-vT,显示制表符 |
-T, --show-tabs |
将制表符显示为^I |
-v, --show-nonprinting |
使用^和 M-符号显示非打印字符 |
常见用法 #
1. 显示文件内容 #
cat file.txt
2. 显示多个文件的内容 #
cat file1.txt file2.txt
3. 创建新文件 #
cat > newfile.txt
# 输入内容,按Ctrl+D结束
4. 将多个文件合并为一个文件 #
cat file1.txt file2.txt > combined.txt
5. 追加内容到文件 #
cat >> file.txt
# 输入内容,按Ctrl+D结束
或
cat file2.txt >> file1.txt
6. 显示行号 #
cat -n file.txt
输出示例:
1 This is line 1
2 This is line 2
3
4 This is line 4
7. 只对非空行编号 #
cat -b file.txt
输出示例:
1 This is line 1
2 This is line 2
3 This is line 4
8. 显示行尾标记 #
cat -E file.txt
输出示例:
This is line 1$
This is line 2$
$
This is line 4$
9. 显示制表符 #
cat -T file.txt
输出示例(假设文件包含制表符):
This^Iis^Ia^Itabbed^Iline
10. 压缩连续空行 #
cat -s file.txt
11. 显示所有特殊字符 #
cat -A file.txt
12. 从标准输入读取 #
echo "Hello, World!" | cat
13. 将标准输入与文件合并 #
cat file.txt - < input.txt
这会先显示 file.txt 的内容,然后显示 input.txt 的内容(通过标准输入传递)。
实用示例 #
1. 查看二进制文件(谨慎使用) #
cat -v binary_file
2. 创建简单的文本文件 #
cat > notes.txt << EOF
This is a note.
It has multiple lines.
EOF
3. 合并多个日志文件 #
cat log1.txt log2.txt log3.txt > combined_logs.txt
4. 显示文件内容并添加行号,然后保存到新文件 #
cat -n file.txt > numbered_file.txt
5. 将文件内容作为邮件发送 #
cat file.txt | mail -s "File Content" [email protected]
6. 查看配置文件,忽略注释和空行 #
cat config.txt | grep -v '^#' | grep -v '^$'
提示 #
- 对于大文件,使用
less
或more
命令比cat
更适合,因为它们支持分页查看 - 使用
cat
查看二进制文件可能会产生不可预测的结果,包括乱码和控制字符 - 在脚本中,通常使用重定向(
>
和>>
)而不是交互式输入 - 使用
tac
命令(cat
的反向)可以按相反的顺序显示文件内容(从最后一行到第一行) - 使用
-A
选项可以帮助检测文件中的不可见字符,如制表符、回车符和换行符 - 在处理包含特殊字符的文件时,
cat -A
可以帮助诊断问题 - 使用
cat
创建文件时,可以使用 here 文档(<<EOF
)来简化多行输入 - 在管道中使用
cat
时,通常可以省略它,例如cat file.txt | grep pattern
可以简化为grep pattern file.txt