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
示例:
1 # 数据准备 2 [root@oldboy oldboy]# seq 5 > number.txt 3 [root@oldboy oldboy]# echo user{01..05}|xargs -n1 > name.txt 4 [root@oldboy oldboy]# echo school_{a..e}> school.txt 5 6 # 查看数据 7 [root@oldboy oldboy]# cat number.txt name.txt school.txt 8 1 9 2 10 3 11 4 12 5 13 user01 14 user02 15 user03 16 user04 17 user05 18 school_a school_b school_c school_d school_e 19 20 # 将三个文件合并 21 [root@oldboy oldboy]# paste number.txt name.txt school.txt 22 1 user01 school_a school_b school_c school_d school_e 23 2 user02 24 3 user03 25 4 user04 26 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