linux系统join命令详解有哪些?让我们一起来了解下。
join指令是将两个具有相同域的纪录给挑选出来,再将这些纪录所有的域放到一行,需要注意的是,join在对两个文件进行连接时,两个文件必须都是按照连接域排好序的,按其他域排序是无效的。
语法:join [-i][-a<1或2>][-e<字符串>][-o<格式>][-t<字符>][-v<1或2>][-1<栏位>][-2<栏位>][--help][--version][文件1][文件2]
参考例子:
将两个文件的具有共同域的纪录连接在一起:
[root@linux265 ~]# cat file.db
A li:20:men:anhui
B wang:21:women:jiangsu
C zhang:22:men:anhui
D liu:23:women:Shanghai
E chen:23:women:Hefei
[root@linux265 ~]# cat file_hobby.db
A li:Song
B wang:shopping
C zhang:pingpong
D liu:chess
E Wang:reading
[root@linux265 ~]# join -t: file.db file_hobby.db
A li:20:men:anhui:Song
B wang:21:women:jiangsu:shopping
C zhang:22:men:anhui:pingpong
D liu:23:women:Shanghai:chess
参数:
-a1或-a2 除了显示共同域的纪录之外,-a1显示第一个文件没有共同域的纪录,-a2显示第二个文件中没有共同域的纪录
-i 忽略大小写
-o 设置结果显示的格式
-t 改变域的分隔符
-v1或-v2 不显示共同域的纪录之外,-v1显示第一个文件没有共同域的纪录,-v2显示第二个文件中没有共同域的纪录
-1或-2 -1用来设置文件1连接的域,-2用来设置文件2连接的域
今天的分享就是这些,希望能帮助大家。
不为人知的Linux命令--join
概述
很多时候我们需要把2个文件合并到一起,可以怎么实现呢?下面介绍下Linux中的join命令。
功能说明:将两个文件中,指定栏位内容相同的行连接起来。
语法:
join [-i][-a<1或2>][-e<字符串>][-o<格式>] [-t<字符>][-v<1或2>][-1<栏位>][-2<栏位>][--help] [--version][文件1][文件2]
补充说明:找出两个文件中,指定栏位内容相同的行,并加以合并,再输出到标准输出设备。
参数:
需求:合并以下两个文件,一起合并在一起,合并到1.txt中
# 1.txtJerry 20Alice 30David 40# 2.txtJerry manAlice womanDavid 40
实现上面的文件特点是有相同的,则合并,第二列缺少内容的。使用join -a1 1.txt 2.txt就可以实现这个需求。
# join -a1 1.txt 2.txt
这个命令在某些场合还是有用的,虽然用的不是很多,做个简单了解即可。后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下~