当前位置:首页>Linux>Linux命令每日一清单050:cat--文件查看与拼接命令速查表

Linux命令每日一清单050:cat--文件查看与拼接命令速查表

  • 2026-10-11 08:38:27
Linux命令每日一清单050:cat--文件查看与拼接命令速查表

cat(concatenate)是Linux/Unix系统中最基础的文件查看和拼接命令,主要用于显示文件内容、合并多个文件以及创建新文件。作为日常使用频率最高的命令之一,cat简单但功能强大,常与重定向、管道等技术配合使用。

cat的核心功能包括:将文件内容输出到标准输出、连接多个文件、按行号显示、显示特殊字符等。虽然对于大文件查看,less或head/tail更为合适,但cat在短文件查看、文件合并、脚本处理等场景中依然不可或缺。掌握cat是Linux命令行操作的基础。

1. 基本语法

命令说明
cat file.txt
将文件内容输出到标准输出
cat file1.txt file2.txt
按顺序输出多个文件内容
cat
从标准输入读取,直到EOF(Ctrl+D)
cat -n file.txt
显示所有行并添加行号
cat -b file.txt
仅对非空行添加行号

2. 查看文件内容

命令说明
cat /etc/os-release
查看发行版信息文件
cat file.txt
显示文件完整内容
cat file1.txt file2.txt
一次性显示两个文件
cat -A file.txt
显示制表符(^I)、行尾($)和非打印字符
cat -s file.txt
压缩连续多个空行为单行
cat file.txt | less
分页查看大文件(推荐)
cat file.txt | head -20
查看文件前20行

3. 行号与特殊字符显示

命令说明
cat -n file.txt
对所有行添加行号(包括空行)
cat -b file.txt
仅对非空行添加行号
cat -E file.txt
在每行末尾显示$符号
cat -T file.txt
将制表符显示为^I
cat -v file.txt
显示非打印字符(如控制字符)
cat -et file.txt
等价于-E -T(显示行尾和制表符)
cat -A file.txt
等价于-vET(显示所有特殊字符)

4. 合并文件

命令说明
cat part1.txt part2.txt > merged.txt
合并多个文件为新文件
cat header.txt body.txt footer.txt > report.txt
将多个部分拼接成完整报告
cat a.txt b.txt c.txt > combined.txt
合并多个文本文件
cat file.txt >> archive.txt
将文件追加到另一个文件末尾
cat *.log > all-logs.txt
合并所有log文件(使用shell通配符)
cat file1.txt file2.txt | grep "error"
合并后搜索
cat file1.txt - file2.txt > combined.txt
在文件间插入标准输入

5. 创建与追加文本

命令说明
cat > notes.txt
从终端输入创建/覆盖文件(Ctrl+D结束)
cat >> notes.txt
从终端输入追加内容到文件
cat << 'EOF' > config.conf
使用here-document创建配置文件
cat << 'EOF' >> config.conf
使用here-document追加内容
cat > script.sh << 'EOF'
从内联内容创建脚本文件

here-document示例:

cat > config.yml << 'EOF'
server:
  host: localhost
  port: 8080
EOF

6. 管道与实用组合

命令说明
cat access.log | grep 500
过滤包含500错误的行
cat file.txt | wc -l
统计文件行数
cat file.txt | head -20
查看前20行
cat file.txt | tail -20
查看最后20行
cat file.txt | tee copy.txt > /dev/null
复制流到文件(同时显示)
cat file.txt | sort | uniq
排序并去重
cat file.txt | tr '[:upper:]' '[:lower:]'
转换为小写
cat file.txt | sed 's/old/new/g'
替换文本

7. 实用组合模式

命令说明
cat /dev/null > file.txt
清空文件内容(保留文件)
cat file1.txt file2.txt > file3.txt 2>&1
合并文件并将错误重定向到同一文件
cat << EOF | grep "pattern"
here-document管道到grep
cat -n file.txt | grep "keyword"
显示带行号的匹配行
for f in *.txt; do echo "=== $f ==="; cat "$f"; done
打印目录下所有txt文件并加标题
cat /proc/cpuinfo | grep "model name" | head -1
查看CPU型号
cat /proc/meminfo | grep MemTotal
查看总内存
ls -la | cat -n
为ls输出添加行号

8. cat vs less vs head/tail 对比

命令适用场景特点
cat
短文件查看、文件合并
一次性输出全部内容
less
大文件交互式浏览
分页、滚动、搜索
head
查看文件开头
默认10行,可指定行数
tail
查看文件末尾、实时跟踪
支持-f跟踪日志
nl
带格式的行号显示
类似cat -b但更灵活

9. 常用选项速查

选项完整名称说明
-n
--number
对所有输出行编号
-b
--number-nonblank
仅对非空行编号
-s
--squeeze-blank
压缩连续空行为单行
-A
--show-all
等价于-vET(显示所有特殊字符)
-E
--show-ends
在每行末尾显示$
-T
--show-tabs
将制表符显示为^I
-v
--show-nonprinting
显示非打印字符
-e
等价于-vE
-t
等价于-vT

10. 相关命令与文件

命令/文件说明
tac
反向输出文件(最后一行先输出)
nl
更专业的行号添加工具
rev
反转每行字符顺序
od
八进制/十六进制转储工具
/dev/null
空设备,常用于清空文件
tee
同时输出到文件和标准输出

11. 故障排查

问题解决方法
cat: file.txt: Permission denied
检查文件权限:ls -l;使用正确的用户或sudo
输出太长无法阅读
管道到less:`cat bigfile.txt
输出是乱码
文件可能是二进制文件,用file filename确认类型
意外覆盖文件
使用>>追加而非>;在shell中启用set -o noclobber
隐藏字符破坏脚本
使用cat -A检查;用dos2unix转换Windows换行
空行过多
使用cat -s压缩连续空行
cat显示大文件很慢
使用less、head或tail替代
cat: command not found
cat通常在/bin/cat,确保PATH包含/bin

温馨提示: cat是最基础但常用的命令。建议掌握以下技巧:1)查看配置文件使用cat -n显示行号便于定位;2)合并配置文件使用cat *.conf > all.conf;3)检查二进制文件前先用file确认;4)清空文件用cat /dev/null > file.txt;5)使用here-document创建多行文件比echo更清晰;6)在脚本中使用cat << 'EOF'保持变量不被展开。注意:对于大文件(>10MB),不建议使用cat直接输出到终端,应使用less或head/tail。查看日志时,tail -f比cat更合适。cat在管道中通常是多余的,如cat file | grep pattern可直接写成grep pattern file。

本文PDF格式下载:

  关注公众号(haopython),请回复: LTCAT

最新文章

随机文章