当前位置:首页>Linux>Linux 神器 paste 命令:一行实现文件横向拼接

Linux 神器 paste 命令:一行实现文件横向拼接

  • 2026-10-11 08:31:57
Linux 神器 paste 命令:一行实现文件横向拼接

今天给大家带来一个超级实用、但常被忽略的 Linux 文本处理命令——paste。

如果说 cat 是把文件上下拼接(纵向),那 paste 就是把文件左右并排(横向)。处理日志、生成表格、整理数据时,一行 paste 顶十行复杂脚本。

一、paste 到底是什么?

paste 是 Linux 系统自带的横向合并工具,核心作用:把多个文件的对应行,合并到同一行输出。

  • • 默认分隔符:Tab 制表符
  • • 处理方式:流式逐行处理,大文件不卡内存
  • • 适用场景:日志合并、生成 CSV、数据对齐、单列转多列

一句话记住:cat 竖着拼,paste 横着拼。

二、5 个最常用实战用法(直接复制可用)

1️⃣ 基础横向合并(最常用)

把两个文件按行左右对齐。

示例:names.txt(姓名)

AliceBobCharlie

scores.txt(分数)

859278

合并命令:

paste names.txt scores.txt

输出效果:

Alice    85Bob      92Charlie  78

2️⃣ 自定义分隔符(-d)

生成 CSV、配置文件时特别好用,支持逗号、冒号、竖线等。

paste -d ',' names.txt scores.txt

输出:

Alice,85Bob,92Charlie,78

✅ 进阶技巧:循环分隔符合并 3 个文件,指定 -d ',;',会自动循环使用分隔符:

paste -d ',;' file1 file2 file3

3️⃣ 串行合并(-s)

把一个文件的所有行,拼成一行。常用于:列表转单行、字符串拼接。

paste -s names.txt scores.txt

输出:

Alice    Bob    Charlie85       92     78

搭配分隔符一键转逗号分隔:

paste -s -d ',' names.txt
Alice,Bob,Charlie

4️⃣ 单列转多列(矩阵变换)

利用 - 表示标准输入,把一列数据自动折叠成多列。

示例文件 numbers.txt:

123456

转 2 列:

paste - - < numbers.txt

输出:

1    23    45    6

转 3 列:

paste - - - < numbers.txt

5️⃣ 管道实战(配合 ls/cut 无敌)

场景 1:文件列表转逗号分隔
ls | paste -s -d ',' -
场景 2:多文件合并后提取列
paste file1 file2 file3 | cut -f 1,3

三、重要注意事项

1. 文件行数不一致以行数多的文件为准,少的文件后续列为空。
2. 流式处理paste 是逐行读取、逐行输出,不加载整个文件,处理 GB 级大文件毫无压力。
3. 标准输入 -一个 - 读一行,写几个 - 就分成几列。

四、速查总结表(建议收藏)

需求
命令
说明
横向合并
paste A B
默认 Tab 分隔
逗号分隔
paste -d ',' A B
生成 CSV
串行转一行
paste -s A
文件内容变一行
单列转多列
paste - - < A
2 列显示
保存结果
paste A B > C
输出到新文件

五、一句话收尾

cat 负责纵向拼接,paste 负责横向合并。

最新文章

随机文章