字符转换命令paste

paste单词的意思就是粘贴,该命令主要用来将多个文件的内容合并,与cut命令完成的功能刚好相反.

语法:

paste [-ds] -file1 file2

参数:

-d : 指定不同于空格或tab键的域分隔符,例如@分隔域,使用-d @;

-s : 将每个文件合并成行而不是按行粘贴;

– : 如果file部分写成-,表示来自standard input 的数据的意思;

 

<1>合并文件

指定先后顺序合并文件,如下:

# paste 01.txt 02.txt

1 aa    1 11

2 bb    2 22

3 cc    4 33

# paste 02.txt 01.txt

1 11    1 aa

2 22    2 bb

4 33    3 cc

指定分隔符,合并文件,默认以[tab]来分隔的,如下:

# paste -d @ 01.txt 02.txt

1 aa@1 11

2 bb@2 22

3 cc@4 33

 

<2>将每个文件合并成行,而不是按行粘贴

paste -s 01.txt 02.txt

1 aa    2 bb    3 cc

1 11    2 22    4 33

 

<3>(-)选项的妙用

使用空格作域分隔符,以一个2列格式显示文件,如下:

# cat /etc/passwd | paste -d ” ”  – – | head -n 3

root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync

(-)意即对每一个-,表示从标准输入中读入一次数据.