跳转到内容

paste

paste 命令用于将多个文件或标准输入的内容按行并排拼接在一起,常用于数据列合并,简单来说就是按列合并文本

Terminal window
paste [选项] [文件1] [文件2] ...
  • 文件1、文件2 等:要合并的文本文件
  • 如果用 - 作为文件名,表示从标准输入读取
选项 作用说明
-d LIST 指定分隔符列表,代替默认的 TAB
-s 串行处理,将每个文件的所有行拼接为一行后再输出
--help 显示帮助信息
--version 显示版本信息

LIST 是想要使用的一个或多个字符(如 ,、;、空格等) 当 LIST 是多个字符时,它们会循环使用

示例数据:

-- file1.txt --
A
B
C
D
-- file2.txt --
1
2
3
-- file3.txt ---
x
y
z

1. 基本并排合并(默认以 Tab 分隔)

Terminal window
paste file1.txt file2.txt

输出:

A 1
B 2
C 3
D

2. 指定分隔符为逗号

Terminal window
paste -d "," file1.txt file2.txt

输出:

A,1
B,2
C,3
D,

3. 多个分隔符循环使用

Terminal window
paste -d ",:" file1.txt file2.txt file3.txt

输出:

A,1:x
B,2:y
C,3:z
D,:

使用 , 连接前两个文件,使用 : 连接后两个,循环使用

4. 按行合并(-s)

Terminal window
paste -s file1.txt

输出:

A B C D
Terminal window
paste -d',' -s file1.txt file2.txt

输出:

A,B,C,D
1,2,3
Terminal window
paste -d'+' -s file2.txt | bc

输出:

6

bc 是 Linux/Unix 系统下的一个任意精度计算器语言

5. 从标准输入合并

Terminal window
cat file1.txt | paste - file2.txt

输出:

A 1
B 2
C 3
D

将 file1.txt 内容作为第一个文件,从标准输入读取,与 file2.txt 合并