join命令

网友投稿 252 2022-09-27

join命令

join命令

​​join​​命令用于将两个文件中,指定栏位内容相同的行连接起来。其首先找出两个文件中指定栏位内容相同的行,并加以合并,再输出到标准输出设备。

语法

join [OPTION]... FILE1 FILE2

参数

​​-a FILENUM​​​: 从​​FILENUM​​​打印不成对的行,其中​​FILENUM​​​是​​1​​​或​​2​​​,对应于​​FILE1​​​或​​FILE2​​。​​-e EMPTY​​: 将缺少的输入字段替换为空。​​-i, --ignore-case​​: 比较字段时忽略大小写的差异。​​-j FIELD​​​: 相当于​​-1 FIELD -2 FIELD​​。​​-o FORMAT​​​: 构造输出线时遵守​​FORMAT​​。​​-t CHAR​​​: 使用​​CHAR​​作为输入和输出字段分隔符。​​-v FILENUM​​​: 类似于​​-a FILENUM​​,但不连接输出行。​​-1 FIELD​​​: 加入文件​​1​​​的这个​​FIELD​​。​​-2 FIELD​​​: 加入文件​​2​​​的这个​​FIELD​​。​​--check-order​​: 检查输入是否正确排序,即使所有输入行都可以配对。​​--nocheck-order​​: 不要检查输入是否正确排序。​​--header​​: 将每个文件的第一行视为字段标题,无需尝试将它们配对即可打印它们。​​--help​​: 显示帮助信息。​​--version​​: 显示版本信息。

示例

​​file1.txt​​​与​​file2.txt​​文件内容如下:

# file1.txt1 AAYUSH2 APAAR3 HEMANT4 KARTIK5 TIM# file2.txt1 1012 1023 1034 104

使用​​join​​​命令合并文件,为了合并两个文件,文件必须具有一些公共字段,此时两个文件中的公共字段均带有编号​​1、2...​​。

join file1.txt file2.txt# 1 AAYUSH 101# 2 APAAR 102# 3 HEMANT 103# 4 KARTIK 104

使用​​-a​​​选项打印​​FILE1​​中已成对的行并链接以及不成对的行。

join file1.txt file2.txt -a 1# 1 AAYUSH 101# 2 APAAR 102# 3 HEMANT 103# 4 KARTIK 104# 5 TIM

使用​​-v​​​选项打印​​FILE1​​中不成对的行。

join file1.txt file2.txt -v 1# 5 TIM

​​join​​​会在第一个公共字段上组合文件行,该字段是默认值。但是这两个文件中的公共值不一定总是第一个列,所以​​join​​​可以使用​​-1, -2​​​指定公共值位置。​​-1​​​和​​-2​​表示第一个和第二个文件,这些选项需要一个数字参数,该参数引用相应文件的连接字段。

`file1.txt`与`file2.txt`文件内容如下:# file1.txtAAYUSH 1 APAAR 2HEMANT 3KARTIK 4TIM 5# file2.txt101 1102 2103 3104 4

join -1 2 -2 2 file1.txt file2.txt# 1 AAYUSH 101# 2 APAAR 102# 3 HEMANT 103# 4 KARTIK 104

对于上面的示例,我们直接使用​​-j​​参数也可以实现。

join -j 2 file1.txt file2.txt# 1 AAYUSH 101# 2 APAAR 102# 3 HEMANT 103# 4 KARTIK 104

每日一题

https://github.com/WindrunnerMax/EveryDay

参考

https://computerhope.com/unix/ujoin.htmhttps://runoob.com/linux/linux-comm-join.htmlhttps://geeksforgeeks.org/join-command-linux/

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:IntelliJ IDEA版Postman强大功能介绍
下一篇:tr命令
相关文章

 发表评论

暂时没有评论,来抢沙发吧~