最常用方法是cat命令合并文本文件:cat file1 file2 > merged.txt覆盖创建,cat file1 file2 >> existing.txt追加;批量可用通配符或ls -v自然排序循环;paste用于横向并排合并;后续可结合sort、uniq等去重或统计。

最常用、最直接的方法是用 cat 命令,它专为连接(concatenate)文件而设计,适合把多个小文本文件按顺序拼成一个大文件。
基础合并:cat + 重定向
语法简单明确:
-
合并到新文件(覆盖创建):
cat file1 file2 file3 > merged.txt -
追加到已有文件末尾:
cat file1 file2 >> existing.txt(注意是两个>)
适用于任意数量的普通文本文件,顺序即命令中列出的顺序。目标文件不存在会自动创建;若已存在,> 会清空原内容再写入。
批量合并:按通配符或循环处理
当文件很多(比如 log_001.txt 到 log_100.txt),手动列名不现实:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
-
用通配符(注意排序安全):
cat log_*.txt > all.log—— 但 shell 展开依赖字母/数字顺序,若文件名是xaa、xab、xac,没问题;若是x1、x10、x2,则顺序错乱。建议用split -d生成的x00、x01格式,再配合cat x?? > full。 -
用 for 循环确保顺序:
for f in $(ls -v log_*.txt); do cat "$f"; done > all.log,其中ls -v支持自然排序(log_1、log_2、log_10正确排列)。
横向合并:用 paste 拼列而非拼行
如果多个文件行数相同,想让它们“并排”组合(第一行合并为一行,第二行合并为下一行……),用 paste:
-
paste file1.txt file2.txt file3.txt > side_by_side.txt—— 默认用制表符分隔各列 -
paste -d ',' file1.txt file2.txt > csv_like.txt—— 指定逗号分隔,适合生成简易 CSV
这个操作不改变行数,只改变每行的宽度,和 cat 的纵向拼接逻辑完全不同。
合并后去重或整理
若合并目的是整合数据(如日志、列表),常需后续处理:
-
合并并去重(保留唯一行):
cat *.txt | sort -u > unique.txt -
合并并统计重复行:
cat *.txt | sort | uniq -c | sort -nr > count_sorted.txt -
只取交集(共同出现的行):
sort file1.txt file2.txt | uniq -d
注意:这些操作依赖每行是独立逻辑单元,且原始文件本身无内部重复更稳妥。

















