paste命令用于按列合并文本文件,支持默认制表符分隔、自定义分隔符(-d选项)及不等行数处理,默认用空字段填充,也可用--serial实现序列模式。

如果您需要将多个文本文件按列的方式合并,例如将两个文件的对应行并排显示,Linux系统中paste命令是专门用于实现这一功能的工具。以下是使用paste命令完成按列合并文件的具体方法:
一、基础paste命令拼接两文件
paste默认以制表符为分隔符,将多个文件的对应行横向拼接,形成列式结构。该操作不修改原文件,仅输出到标准输出,适合快速查看或重定向保存。
1、打开终端,进入包含待合并文件的目录。
2、执行命令:paste file1.txt file2.txt。
3、若需将结果保存为新文件,追加重定向:paste file1.txt file2.txt > merged.txt。
二、指定自定义分隔符
当默认的制表符不符合阅读或后续处理需求时,可使用-d选项定义分隔符,使列间界限更清晰或适配特定格式要求。
1、使用空格作为分隔符:paste -d ' ' file1.txt file2.txt。
2、使用逗号分隔(适用于CSV风格输出):paste -d ',' file1.txt file2.txt。
3、使用多个字符循环分隔(如交替使用“|”和“-”):paste -d '|-' file1.txt file2.txt file3.txt。
三、处理行数不等的文件
paste在遇到文件行数不一致时,默认用空字段填充较短文件的缺失行。可通过--serial选项改为逐列纵向拼接,或结合其他命令预处理对齐。
1、保持默认填充行为(推荐多数场景):paste file1.txt file2.txt,较短文件末尾自动补空字段。
2、启用序列模式(单列垂直堆叠):paste --serial file1.txt file2.txt。
3、先用awk补齐行数再拼接:paste 。
四、合并多个文件并添加列标题
当参与合并的文件无标题行,而输出需带列名时,可将标题行单独构造后与数据拼接,利用paste实现表头对齐。
1、创建临时标题行(假设两列):echo -e "Name\tAge" > header.txt。
2、将标题与数据文件拼接:paste header.txt 。
3、若需跳过原文件首行(已有标题),用tail处理:paste 。
五、结合cut与paste实现选择性列合并
当只需从原始文件中提取特定列再进行拼接时,可先用cut筛选字段,再交由paste组合,避免冗余内容干扰。
1、提取file1第一列与file2第二列拼接:paste 。
2、提取多列(如file1的第1、3列)与file2第2列合并:paste 。
3、指定分隔符为冒号并提取::paste -d ':' csv) 。










