如何在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
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP