如何在Linux中根據公共欄位連線兩個檔案?


要根據公共欄位連線兩個檔案,我們在Linux系統中使用join命令。join命令用於在Linux系統中根據公共欄位連線兩個檔案的行。如果我們有兩個檔案,並且想要連線檔案行,則無需合併兩個檔案。我們可以使用join命令在不合並檔案的情況下連線行。預設情況下,連線欄位是第一個欄位,由空格分隔。

語法

join命令的通用語法如下:

join [OPTION]... FILE1 FILE2

注意 – 如果未給出FILE1或FILE2或兩者均未給出,則join命令從標準輸入讀取。

fmt命令中可用選項的簡要說明。

序號選項和說明
1-a, FILENUM
還列印來自檔案FILENUM的不可配對的行,其中FILENUM為1或2,分別對應FILE1或FILE2
2-e EMPTY
用EMPTY替換缺失的輸入欄位
3-i, --ignore-case
比較欄位時忽略大小寫差異
4-j FIELD
等效於‘-1 FIELD -2 FIELD’
5-o FORMAT
構造輸出行時遵守FORMAT
6-t CHAR
使用CHAR作為輸入和輸出欄位分隔符
7-v FILENUM
類似於-a FILENUM,但抑制連線的輸出行
8-1 FIELD
連線檔案1的此FIELD
9-2 FIELD
連線檔案2的此FIELD
10--header
將每個檔案中的第一行視為欄位標題,列印它們而不嘗試將它們配對
11-z, --zero-terminated
行分隔符為NULL,而不是換行符
12--help
顯示幫助資訊,然後退出。
13--version
它提供有關版本的資訊,然後退出。

要連線兩個檔案的行並列印到標準輸出,我們使用沒有任何其他選項的join命令,如下所示。

首先,我們將使用Linux系統中的cat命令建立兩個已排序的檔案。

$ cat > text1.txt
1 SID
2 SAYANI
3 GAURAV
4 VIKASH
$ cat >text2.txt
1 23
2 19
3 22
4 21

然後,我們將使用join命令連線Linux系統中的行,如下所示。

$ join text1.txt text2.txt
1 SID 23
2 SAYANI 19
3 GAURAV 224 VIKASH 21

注意 - 要合併兩個檔案,這兩個檔案中必須有一些公共欄位。

我們可以建立一個新檔案,其中連線公共欄位,如下所示。

$ join text1.txt text2.txt >jointext.txt

要檢查有關join命令的更多資訊,我們可以在Linux作業系統中使用--help選項與join命令一起使用,如下所示。

$ join --help

要檢查join命令的版本資訊,我們可以在Linux作業系統中使用--version選項與join命令一起使用,如下所示。

$ join --version

更新於:2021年7月1日

952 次瀏覽

啟動你的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.