paste命令,是一个专门和上一篇文章cut命令对着干的命令,作用是将几个文件拼凑在一起。
一、两个文件合并
[root@localhost ~]# cat a.txt 1 2 3 [root@localhost ~]# cat b.txt a b c [root@localhost ~]# paste a.txt b.txt 1 a 2 b 3 c [root@localhost ~]# paste a.txt b.txt |sed -n l 1\ta$ 2\tb$ 3\tc$
PS:看到制表符,它就是默认的间隔符
二、三个文件合并
[root@localhost ~]# paste a.txt b.txt c.txt 1 a A 2 b B 3 c C [root@localhost ~]# paste c.txt b.txt a.txt A a 1 B b 2 C c 3
PS:paste的结果是和文件列表的顺序有关的
三、不想用制表符来间隔,我想用其他符号来间隔
使用-d符号就可以设定间隔符,这和cut没有两样
[root@localhost ~]# paste -d '@' c.txt b.txt a.txt A@a@1 B@b@2 C@c@3 [root@localhost ~]# paste -d '*' c.txt b.txt a.txt A*a*1 B*b*2 C*c*3
PS:如果是用*来间隔,此处一定要把*用引号括起来哦(单引号双引号均可),否则shell会把*扩展为当前目录下的文件列表。
四、-s选择意思
-s就是以每个文件为一个处理单元,将其中的所有行以-d设定的间隔符相连接组成一大行,输出到标准输出中
[root@localhost ~]# paste -s -d '*' c.txt b.txt a.txt A*B*C a*b*c 1*2*3

聂扬帆博客
一个分享IT运维相关工作经验和实战技巧的个人博客
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏