2.join - join lines of two files on a common field數據庫
join命令用來將兩個文件中,制定欄位內容相同的行鏈接起來。找出兩個文件中,指定欄位內容相同的行,並加以合併,再輸出到標準輸出設備。ide
注意:join在對兩個文件進行鏈接時,兩個文件必須都是按照鏈接域排好序的,按其餘域排序是無效的。spa
[dmtsai@study ~]$ join [-ti12] file1 file2視頻
-t :join 默認以空格符分隔數據,而且比對『第一個字段』的數據,字符串
若是兩個檔案相同,則將兩筆數據聯成一行,且第一個字段放在第一個!get
-1 :這個是數字的 1 ,表明『第一個檔案要用那個字段來分析』的意思;it
[root@localhost tmp]# cat join1
[root@localhost tmp]# cat join2
[root@localhost tmp]# join join1 join2 #內鏈接
[root@localhost tmp]# join join2 join1
adm x 4 x 3 4 adm #注意參數前後順序的結果
#不指定任何參數的狀況下使用join命令,就至關於數據庫中的內鏈接,關鍵字不匹配的行不會輸出。
[root@localhost tmp]# join -a1 join1 join2 #左鏈接
[root@localhost tmp]# join -a2 join1 join2 #右鏈接
[root@localhost tmp]# join -a1 -a2 join1 join2 #全鏈接
[root@localhost tmp]# join join1 join2
[root@localhost tmp]# join -o 1.1 1.2 1.3 join1 join2
[root@localhost tmp]# join -o 1.1 1.2 1.3 2.2 2.3 join1 join2
[root@localhost tmp]# cat joina
[root@localhost tmp]# cat joinb
[root@localhost tmp]# join -t ":" joina joinb
[root@localhost tmp]# sort -t ":" -k 3 joina >join1
[root@localhost tmp]# sort -t ":" -k 3 joinb >join2
[root@localhost tmp]# cat join1
[root@localhost tmp]# cat join2
[root@localhost tmp]# join -t ":" -j 3 join1 join2
0:root:x:0:root:root:x: #指定同一字段鏈接
[root@localhost tmp]# join -t ":" -1 4 -2 3 join1 join2
0:root:x:0:root:root:x: #第一個文件的第4個字段
1:bin:x:1:bin:bin:x: #與第二個文件的第3個字段鏈接
[root@localhost tmp]# join -t ":" -o 1.1 1.2 2.2 2.3 -e "aa" -a1 join1 join2