paste - merge lines of files
paste 命令用于合并文件的列。
paste 指令会把每个文件以列对列的方式,一列列地加以合并。
语法: paste [OPTION]... [FILE]...
参数:
- -d<间隔字符>或--delimiters=<间隔字符>
- 用指定的间隔字符取代跳格字符。
[root@oldboy oldboy]# paste number.txt name.txt -d :
1:user01
2:user02
3:user03
4:user04
5:user05 # -d参数可指定的分隔符可以是多种,列表
[root@oldboy oldboy]# paste number.txt name.txt number.txt -d "=;:"
1=user01;1
2=user02;2
3=user03;3
4=user04;4
5=user05;5
- 用指定的间隔字符取代跳格字符。
- -s或--serial
- 串列进行而非平行处理。
[root@oldboy oldboy]# paste number.txt name.txt -d "," -s
1,2,3,4,5
user01,user02,user03,user04,user05
示例:
# 数据准备
[root@oldboy oldboy]# seq 5 > number.txt
[root@oldboy oldboy]# echo user{01..05}|xargs -n1 > name.txt
[root@oldboy oldboy]# echo school_{a..e}> school.txt # 查看数据
[root@oldboy oldboy]# cat number.txt name.txt school.txt
1
2
3
4
5
user01
user02
user03
user04
user05
school_a school_b school_c school_d school_e # 将三个文件合并
[root@oldboy oldboy]# paste number.txt name.txt school.txt
1 user01 school_a school_b school_c school_d school_e
2 user02
3 user03
4 user04
5 user05
从标准输入加载数据:
[root@oldboy oldboy]# seq 10 > seq_1.txt
[root@oldboy oldboy]# paste -d ',' - - <seq_1.txt
1,2
3,4
5,6
7,8
9,10