paste 命令详解
更新时间:2026-08-28。本文是「一个命令一个文档」系列,属于文本处理命令族(见文本处理命令族)。它做"列方向"的合并,和 cat 的行合并(见cat)互补。
paste 把多个文件的对应行横向拼到一起,用制表符(或指定符)分隔。比如文件 A 一列名字、文件 B 一列分数,paste 一下变成"名字\t分数"两列。
一、基本用法
bash
paste a.txt b.txt # 两文件按行并排(默认 Tab 分隔)
ls /etc | paste - - # 每行拆成两列(成对并排)默认分隔符是 Tab。第二条
paste - -把输入每两行并成一行的两列,是快速把单列变多列的妙招。
二、指定分隔符:-d
bash
paste -d',' name.txt score.txt # 用逗号分隔:name,score
paste -d':' user.txt pass.txt # 拼成 user:pass 格式
-d指定分隔符,拼 CSV、拼:配置行很方便。可以指定多个字符循环使用(如-d',\n'让第二处用换行)。
三、与 cut 配合 / 与 join 区别
bash
cut -d: -f1 /etc/passwd | paste - <(cut -d: -f3 /etc/passwd)
# 取用户名和 uid 两列并排
# join 是按"共同字段"关联(像 SQL join),paste 只是按行号机械拼接
paste是"盲目按行号对齐",不关心内容是否匹配;join(见链接)按某列关键值关联,类似数据库 join。只是想并排展示、且两文件行序一致时用paste最简单。cut 取列 +paste拼列是常见组合。
一句话总结
paste = 按列横向拼接文件:默认 Tab 分隔、-d 指定分隔符(拼 CSV/配置);paste - - 把单列拆多列;和 cut(见cut)配合做列重组;与 join 区别是 paste 只按行号机械对齐、不按关键值关联。