概述
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` 選項來包含不匹配的行,或僅輸出不匹配的行。