# join - 两个文件中指定栏位内容相同的行连接起来
找出两个文件中相同的字段,根据相同字段合并两个文件,将合并结果显示到标准输出。
join命令 用来将两个文件中,制定栏位内容相同的行连接起来。找出两个文件中,指定栏位内容相同的行,并加以合并,再输出到标准输出设备。
# pwd - 显示当前工作目录
# 适用范围
RedHat
RHEL
Ubuntu
CentOS
Debian
Deepin
SUSE
openSUSE
Fedora
Linux Mint
Alpine Linux
Arch Linux
# 语法
join [选项] file1 file2
# 选项
-a 1或2 # 将文件中没有相同字段的行显示出来
-e string # 如果在文件中找不到指定的字符串,在输出中填入选项中的字符串
-I, --ignore-case # 忽略大小写
-j FIELD # 等价于“-1 FIELD -2 FIELD”
-o format # 用指定的格式显示结果
-t CHAR # 指定分隔符
-v 1或2 # 和-a一样,但是只显示没有相同字段的行
-1 FIELD # 连接文件1指定的字段
-2 FIELD # 连接文件2指定的字段
--check-order # 检查输入是否正确排序,即使所有输入行都是可修的。
--nocheck-order # 不检查输入是否正确排序
--help # 显示帮助文档
--version # 显示命令版本信息
# 举例
sogrey@bogon demo4]$ ls
hello.txt test2.txt
[sogrey@bogon demo4]$ cat hello.txt test2.txt
Hello world!
I love linux
[sogrey@bogon demo4]$ join hello.txt test2.txt
[sogrey@bogon demo4]$ cat hello.txt test2.txt
Hello world!
Ok,fine.
I love linux
Hello world
HaHa
[sogrey@bogon demo4]$ join hello.txt test2.txt # 合并相同行
join: test2.txt:2: is not sorted: Hello world
[sogrey@bogon demo4]$ join hello.txt test2.txt -v 1 # 显示文件1中不没有相同字段的行
Hello world!
join: test2.txt:2: is not sorted: Hello world
Ok,fine.
[sogrey@bogon demo4]$ join hello.txt test2.txt -v 2 # 显示文件2中没有相同字段的行
I love linux
join: test2.txt:2: is not sorted: Hello world
Hello world
HaHa
[sogrey@bogon demo4]$