当前位置:科普知识站>IT科技>

linux|join命令详解

IT科技 阅读(2.36W)

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命令详解