Linux join 命令


簡介

Linux 是一款開源作業系統,為使用者提供了廣泛的實用程式和工具來管理和操作資料。其中一個工具是 join 命令,用於根據公共欄位連線兩個不同的檔案。join 命令是一個非常有用的實用程式,可用於合併或連線兩個檔案,其中一個檔案包含唯一欄位列表,另一個檔案包含有關這些欄位的更詳細資訊。

Linux join 命令是一個強大的工具,用於根據公共欄位合併兩個不同的檔案。該命令讀取兩個檔案的內容,並根據指定的欄位(可以是字串或數值)將它們合併。在本文中,我們將討論 join 命令的各個方面及其用法。

語法

join 命令的語法如下:

join [options] file1 file2

join 命令的選項如下:

  • -t - 此選項用於指定檔案中使用的分隔符字元。預設情況下,分隔符為空格。

  • -1 - 此選項用於指定第一個檔案中的欄位號。

  • -2 - 此選項用於指定第二個檔案中的欄位號。

  • -a - 此選項用於列印兩個檔案中的所有行,包括不匹配的行。

  • -e - 此選項用於將缺失的欄位替換為指定的值。

示例

現在讓我們來看一些 join 命令的示例。

示例 1

假設我們有兩個檔案,file1 和 file2,內容如下:

檔案 1 -

1 Alpha 2 Bravo 3 Charlie 4 Delta 5 Echo

檔案 2 -

2 20 3 30 4 40 5 50 6 60

我們可以使用以下命令根據每個檔案中的第一個欄位連線這兩個檔案:

join file1 file2

輸出將如下所示:

2 Bravo 20 3 Charlie 30 4 Delta 40 5 Echo 50

如我們所見,join 命令已根據第一個欄位合併了兩個檔案。

示例 2

現在假設我們有兩個檔案,file1 和 file2,內容如下:

檔案 1 -

A Alpha B Bravo C Charlie D Delta E Echo

檔案 2 -

B 20 C 30 D 40 E 50 F 60

我們可以使用以下命令根據每個檔案中的第二個欄位連線這兩個檔案:

join -1 2 -2 1 file1 file2

輸出將如下所示:

Bravo B 20 Charlie C 30 Delta D 40 Echo E 50

如我們所見,join 命令已根據第二個欄位合併了兩個檔案。

示例 3

假設我們有兩個檔案,file1 和 file2,內容如下:

檔案 1 -

1 Alpha 2 Bravo 3 Charlie 4 Delta 5 Echo

檔案 2 -

2 20 3 30 4 40 5 50 6 60

我們可以連線這兩個檔案,幷包括兩個檔案中的所有行(包括不匹配的行),使用以下命令:

join -a 1 -a 2 file1 file2

輸出將如下所示:

1 Alpha 2 Bravo 20 3 Charlie 30 4 Delta 40 5 Echo 50 6 60

如我們所見,join 命令已合併了兩個檔案,幷包括了兩個檔案中的所有行。

以下是一些在使用 Linux join 命令時需要考慮的其他事項:

  • join 命令要求輸入檔案根據連線欄位排序。如果檔案未排序,則連線操作將無法正常工作。您可以在使用 join 命令之前使用 sort 命令對檔案進行排序。

  • 如果連線欄位包含空格或其他特殊字元,則可能需要使用 -t 選項指定分隔符字元。例如,如果連線欄位以逗號分隔,則可以使用 -t ',' 指定分隔符。

  • join 命令僅適用於兩個輸入檔案。如果您需要連線兩個以上的檔案,則可以使用一個連線操作的輸出作為另一個連線操作的輸入。

  • join 命令可以與各種輸出選項一起使用,以控制輸出的格式。例如,您可以使用 -o 選項指定輸出格式,例如連線欄位後跟檔案 1 和檔案 2 中的其餘欄位。

  • 如果您想從輸出中排除匹配的行,則可以使用 -v 選項。這將僅列印檔案 1 或檔案 2 中在另一個檔案中沒有匹配項的行。

  • 如果連線欄位在任一檔案中包含重複的值,則 join 命令將建立匹配行的叉積。為避免這種情況,您可以在使用 join 命令之前使用 uniq 命令刪除重複的行。

總的來說,Linux join 命令是一個用途廣泛的工具,可用於各種資料處理任務。透過掌握 join 命令的用法和選項,您可以在 Linux 中處理大型資料集時大大提高效率和生產力。

結論

總之,Linux join 命令是一個非常有用的實用程式,可用於根據公共欄位合併兩個不同的檔案。該命令提供了各種選項來自定義連線操作,例如指定分隔符字元、欄位號和輸出格式。在我們需要組合來自多個檔案的資料並建立一個用於進一步處理的單個輸出檔案的情況下,join 命令特別有用。

在本文中,我們討論了 Linux 中 join 命令的語法和用法,並提供了一些示例。我們瞭解瞭如何使用該命令根據不同的欄位合併檔案,以及如何包括兩個檔案中的所有行。我們還了解了如何將缺失的欄位替換為指定的值。

總的來說,join 命令是 Linux 中用於資料操作的強大工具,其使用可以極大地簡化和簡化資料處理任務。建議學習和練習使用 join 命令,以提高您在 Linux 中的效率和生產力。

更新於: 2023年3月23日

2K+ 閱讀量

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告