首頁 > 文字處理與搜尋 > join

join:合併兩個檔案的共同欄位

join 指令根據兩個已排序的文字檔案中指定的共同欄位,將行合併並輸出到標準輸出。它的運作方式類似於資料庫的 JOIN 操作,透過結合每個檔案的對應行來建立新行。

概述

join 透過比較兩個檔案的特定欄位來合併匹配的行。此指令要求輸入檔案必須根據共同欄位進行排序才能正確運作。對未排序的檔案使用時,可能會產生非預期的結果。

主要特點

  • 基於兩個檔案的共同欄位進行合併
  • 輸入檔案必須排序
  • 透過各種選項控制輸出格式
  • 適用於資料整合和報告生成

主要選項

join 指令可透過各種選項精確控制合併基準、輸出格式以及不匹配行的處理方式。

欄位指定與分隔符

輸出控制

生成的命令:

請試著組合命令。

這個 Django 應用程序是一個技術指南文檔,旨在為用戶輕鬆解釋 Linux 的各種命令。

`join` 執行命令。

請將上述選項組合在一起,與 AI 一同虛擬執行命令。

使用範例

透過 join 指令的各種應用範例,了解如何有效合併兩個檔案的資料。

基本合併

echo "1 apple\n2 banana" > file1.txt && echo "1 red\n2 yellow" > file2.txt && join file1.txt file2.txt

根據兩個檔案的第一個欄位進行合併。 (創建檔案後執行)

合併特定欄位

echo "apple 1\nbanana 2" > file3.txt && echo "red 1\nyellow 2" > file4.txt && join -j 2 file3.txt file4.txt

根據兩個檔案的第二個欄位進行合併。 (創建檔案後執行)

使用 Tab 分隔符

echo -e "id\tname\n1\tAlice\n2\tBob" > users.tsv && echo -e "id\tcity\n1\tSeoul\n3\tParis" > cities.tsv && join -t $'\t' users.tsv cities.tsv

合併以 Tab 分隔的檔案。 (創建檔案後執行)

包含不匹配的行

echo "1 apple\n2 banana\n3 orange" > file5.txt && echo "1 red\n2 yellow" > file6.txt && join -a 1 file5.txt file6.txt

也將第一個檔案 (file5.txt) 中獨有的行包含在輸出中。 (創建檔案後執行)

僅輸出特定欄位

echo "1 apple\n2 banana" > file7.txt && echo "1 red\n2 yellow" > file8.txt && join -o 1.1,1.2,2.2 file7.txt file8.txt

僅輸出第一個檔案的第一、第二個欄位以及第二個檔案的第二個欄位。 (創建檔案後執行)

提示與注意事項

使用 join 指令時的實用提示和注意事項。

重要提示

  • **輸入檔案排序**:join 指令要求輸入檔案必須根據連接欄位進行排序才能正確運作。使用 `sort` 指令預先排序是必需的。例如:`sort file1.txt > sorted_file1.txt`
  • **欄位分隔符**:預設分隔符是空格(空白、Tab)。如果使用其他分隔符,請使用 `-t` 選項。例如,對於 CSV 檔案,請使用 `-t ','`。
  • **輸出格式控制**:可以使用 `-o` 選項精確控制輸出的欄位順序和包含的欄位。格式為 `檔案編號.欄位編號` (例如:`1.2` 表示第一個檔案的第二個欄位)。
  • **不匹配行的處理**:可以使用 `-a` 或 `-v` 選項來包含不匹配的行,或僅輸出不匹配的行。

相同類別命令