跳转至

paste

paste 是 Linux 中的一个命令行工具,主要用于合并多个文件或标准输入的行,按列拼接数据。它的常见用法如下:


1. 默认拼接(按列合并)

paste file1.txt file2.txt
作用:按行合并 file1.txtfile2.txt,使用 制表符(Tab) 作为默认分隔符。

示例

$ cat file1.txt
A
B
C

$ cat file2.txt
1
2
3

$ paste file1.txt file2.txt
A       1
B       2
C       3


2. 自定义分隔符(-d 选项)

paste -d "," file1.txt file2.txt
作用:使用逗号 , 作为分隔符,而不是默认的制表符。

示例

$ paste -d "," file1.txt file2.txt
A,1
B,2
C,3
支持多个分隔符:
paste -d ",:" file1.txt file2.txt file3.txt
如果分隔符数量小于文件数量,则循环使用。


3. 合并到一行(-s 选项)

paste -s file1.txt
作用:将文件的所有行合并到一行。

示例

$ cat file1.txt
A
B
C

$ paste -s file1.txt
A       B       C

结合 -d 选项:

paste -s -d "," file1.txt
输出:
A,B,C


4. 读取标准输入

如果不指定文件,paste 也可以从标准输入读取数据:

echo -e "A\nB\nC" | paste -s -d ","
输出:
A,B,C


5. 处理多个文件并行合并

paste file1.txt file2.txt file3.txt
如果 file3.txt 为空或行数较少,paste 会以空值补齐。


6. 配合 cutawk 进行列操作

file.txt 提取两列数据,并按逗号拼接:

cut -f1 file.txt | paste -d "," - file.txt


7. find 结合批量处理

find . -type f -name "*.txt" | paste -s -d " "
将当前目录所有 .txt 文件的路径合并成一行,以空格分隔。


总结

选项 作用
-d <分隔符> 指定分隔符(默认是 Tab
-s 合并所有行到一行
- 读取标准输入