paste:合并文件

xiaohai 2021-06-08 11:18:34 2489人围观 标签: Linux 
简介paste命令用于将文件按照行与行进行合并,中间使用tab隔开。但是paste命令与cat命令合并文件是有区别的,cat是将多个文件按照先后顺序进行合并成一个。
说明

  paste命令用于将文件按照行与行进行合并,中间使用tab隔开。但是paste命令与cat命令合并文件是有区别的,cat是将多个文件按照先后顺序进行合并成一个。

格式

  paste [option] [filename]

常用参数
  • -d:指定默认分隔符,默认为Tab
  • -s:每个文件内容占用一行,也就是每个文件的内容都转成一行进行显示
示例

1、不带任何参数合并两个文件

[root@localhost ~]# cat test1.txt 
1
2
3
4
5
[root@localhost ~]# cat test2.txt 
zhangsan
lisi
wangwu
wangermazi
liuxing
[root@localhost ~]# 
[root@localhost ~]# 
[root@localhost ~]# paste test1.txt test2.txt 
1    zhangsan
2    lisi
3    wangwu
4    wangermazi
5    liuxing

2、-d参数使用,指定分隔符进行合并

[root@localhost ~]# paste -d , test1.txt test2.txt 
1,zhangsan
2,lisi
3,wangwu
4,wangermazi
5,liuxing

3、-s参数使用,让每个文件内容占用一行

[root@localhost ~]# paste test1.txt #不使用任何参数,显示如下
1
2
3
4
5
[root@localhost ~]# 
[root@localhost ~]# paste -s test1.txt #加上-s,文件的内容变成一行
1    2    3    4    5
[root@localhost ~]# paste -s test1.txt test2.txt #多个文件,每个文件内容都占用一行
1    2    3    4    5
zhangsan    lisi    wangwu    wangermazi    liuxing
[root@localhost ~]# paste -d , -s test1.txt test2.txt  #还可以指定分隔符
1,2,3,4,5
zhangsan,lisi,wangwu,wangermazi,liuxing

4、paste的特殊用法,-s参数可以指定多个分割符,然后轮流在做分割

[root@localhost ~]# paste -d ",=" -s test2.txt  #轮流使用,和=作为分隔符
zhangsan,lisi=wangwu,wangermazi=liuxing

#如果我们一个文件里面的内容是第一行是用户名第二行是用户登录次数依次下去,如果我们想得到每行是用户名,登录次数的格式,那么我们就可以使用上的特殊用法,指定两个分隔符,轮流进行使用。
[root@localhost ~]# cat test3.txt 
zhangsan
18
lisi
20
wangwu
33
liuxing
12
[root@localhost ~]# paste -sd ",\n" test3.txt 
zhangsan,18
lisi,20
wangwu,33
liuxing,12