Linux 的 paste 命令
paste命令是 Linux/Unix 系统中一个简单但实用的文本处理工具,用于将多个文件的内容按行合并(水平拼接)。与cat命令的垂直连接不同,paste是将不同文件中的对应行并排显示。
基本语法
paste[选项]文件1 文件2...常用选项
-d 分隔符:指定合并行时使用的分隔符(默认为制表符)
- 例如:
paste -d ',' file1 file2使用逗号作为分隔符
- 例如:
-s:将每个文件的内容按顺序合并为一行
- 例如:
paste -s file1将文件所有行合并为一行
- 例如:
-:从标准输入读取数据
- 例如:
ls | paste -d' ' - - -将 ls 输出每三行合并为一行
- 例如:
使用示例
基本合并
# 文件1内容:# line1# line2# 文件2内容:# text1# text2pastefile1 file2# 输出:# line1 text1# line2 text2使用自定义分隔符
paste-d'|'file1 file2# 输出:# line1|text1# line2|text2合并多个文件
pastefile1 file2 file3# 将三个文件的对应行用制表符连接与标准输入配合
echo-e"a\nb\nc"|paste-d, - file2# 将标准输入与file2合并,使用逗号分隔实际应用场景
日志分析:将不同时间点的日志数据并排比较
pastelog_20230101.log log_20230102.log数据预处理:为 CSV 文件添加标题行
echo"Name,Age,Gender"|paste-d''- data.csv>new_data.csv格式化输出:将命令输出重新组织
ls/bin|paste-d' '- - - -# 将/bin目录列表每4个文件名为一行显示创建测试数据:快速生成测试用的组合数据
paste<(seq15)<(echo-e"a\nb\nc\nd\ne")>test_data.txt
注意事项
- 当文件行数不一致时,
paste会用空行补齐较短的文件 - 默认分隔符是制表符(\t),在终端显示可能不明显
- 与
cut命令配合使用时要注意列号对应关系 - 在
shell脚本中使用时,建议总是明确指定分隔符(-d)
paste命令虽然简单,但在文本处理和数据转换任务中非常实用,特别是在需要快速合并或重组数据时。
