每天学一个 Linux 命令(37):paste
paste
命令用于合并多个文件的列,将不同文件的行按列拼接在一起,是 Linux 中处理文本数据的实用工具。
基本语法
paste [选项] 文件1 文件2 ...
常用选项
选项 | 说明 |
---|---|
-d | 指定分隔符(默认为制表符) |
-s | 串行合并(将一个文件的所有行合并为一行) |
--help | 显示帮助信息 |
--version | 显示版本信息 |
使用示例
1. 基本用法(默认用制表符分隔)
paste file1.txt file2.txt
2. 指定分隔符(如逗号)
paste -d ',' file1.txt file2.txt
3. 串行合并(将文件内容合并为一行)
paste -s file1.txt
4. 合并多个文件
paste file1.txt file2.txt file3.txt
5. 使用特殊分隔符(如分号)
paste -d ';' file1.txt file2.txt
6. 从标准输入合并数据
ls | paste -d ' ' - - - # 每3个文件名排成一行
7. 结合其他命令使用
cut -d ':' -f1 /etc/passwd | paste -s -d ','
实际应用场景
-
合并姓名和电话号码:
paste -d ':' names.txt phones.txt > contacts.txt
-
将多行数据转为单行:
cat data.txt | paste -s -d ' '
-
创建CSV格式数据:
paste -d ',' ids.txt names.txt emails.txt > users.csv
-
格式化命令输出:
ls /bin | paste -d ' ' - - - - # 每4个文件名排成一行
注意事项
- 当文件行数不同时,
paste
会用空值补齐 - 默认分隔符是制表符(\t),可以用
-d
选项更改 -
表示从标准输入读取数据
paste
命令特别适合需要将多个数据源按列合并的场景,是 shell 脚本中处理文本数据的利器。