Linux文本比较命令join详解

在Linux中,join命令用于在两个文件中找出指定栏位内容相同的行,合并后输出到标准输出设备。

语法

join [-i][-a<1或2>][-e<字符串>][-o<格式>][-t<字符>][-v<1或2>][-1<栏位>][-2<栏位>][--help][--version][文件1][文件2]

参数说明

参数 说明
-a<1或2> 不仅显示原来的输出内容,同时显示文件中没有相同栏位的行
-e<字符串> 若[文件1]与[文件2]中找不到指定的栏位,则输出选项中的字符串
-i 或 --igore-case 比较栏位内容时,忽略大小写
-o<格式> 按指定的格式显示结果
-t<字符> 使用栏位的分隔字符
-v<1或2> 同“-a”,但是只显示文件中没有相同栏位的行
-1<栏位> 连接[文件1]指定的栏位
-2<栏位> 连接[文件2]指定的栏位
--help 显示帮助
--version 显示版本

举例

# file1内容
Hello    11
World    22
Example  33

# file2内容
Hello    001
World    002
Example  003

# file3内容
1 星期一
2 星期二
3 星期三
4 星期四
5 星期五
6 星期六
7 星期日
8 星期八

# file4内容
1 Monday
2 Tuesday
3 Wednesday
4 Thursday
5 Friday
6 Saturday
7 Sunday
9 Crazy

通过join命令连接文件:

join file1 file2 | tee
# 连接后显示的内容
Hello 11 001
World 22 002
Example 33 003

join file2 file1 | tee
# 连接后显示的内容
Hello 001 11
World 002 22
Example 003 33

join -a2 file3 file4 | tee
# 连接后显示的内容
1 星期一 Monday
2 星期二 Tuesday
3 星期三 Wednesday
4 星期四 Thursday
5 星期五 Friday
6 星期六 Saturday
7 星期日 Sunday
9 Crazy

join -a1 -a2 file3 file4 | tee
# 连接后显示的内容
1 星期一 Monday
2 星期二 Tuesday
3 星期三 Wednesday
4 星期四 Thursday
5 星期五 Friday
6 星期六 Saturday
7 星期日 Sunday
8 星期八
9 Crazy

原创文章禁止转载:技术学堂 » Linux文本比较命令join详解

精彩评论

8+8=

感谢您的支持与鼓励

支付宝扫一扫打赏

微信扫一扫打赏