“五分钟学命令系列”之十五《paste命令》

paste命令,是一个专门和上一篇文章cut命令对着干的命令,作用是将几个文件拼凑在一起。

一、两个文件合并

[[email protected] ~]# cat a.txt

1

2

3

[[email protected] ~]# cat b.txt

a

b

c

[[email protected] ~]# paste a.txt b.txt

1 a

2 b

3 c

[[email protected] ~]# paste a.txt b.txt |sed -n l

1\ta$

2\tb$

3\tc$

PS:看到制表符,它就是默认的间隔符

二、三个文件合并

[[email protected] ~]# paste a.txt b.txt c.txt

1 a A

2 b B

3 c C

[[email protected] ~]# paste c.txt b.txt a.txt

A a 1

B b 2

C c 3

PS:paste的结果是和文件列表的顺序有关的

三、不想用制表符来间隔,我想用其他符号来间隔

使用-d符号就可以设定间隔符,这和cut没有两样

[[email protected] ~]# paste -d '@' c.txt b.txt a.txt

[email protected]@1

[email protected]@2

[email protected]@3

[[email protected] ~]# paste -d '*' c.txt b.txt a.txt

A*a*1

B*b*2

C*c*3

PS:如果是用*来间隔,此处一定要把*用引号括起来哦(单引号双引号均可),否则shell会把*扩展为当前目录下的文件列表。

四、-s选择意思

-s就是以每个文件为一个处理单元,将其中的所有行以-d设定的间隔符相连接组成一大行,输出到标准输出中

[[email protected] ~]# paste -s -d '*' c.txt b.txt a.txt

A*B*C

a*b*c

1*2*3

weinxin
聂扬帆博客
一个分享IT运维相关工作经验和实战技巧的个人博客

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: