join
- join – narzędzie tekstowe służące do łączenia zawartości dwóch plików wiersz po wierszu, w oparciu o wspólny klucz znajdujący się w określonej kolumnie.
- Przydatne w analizie danych, raportach i przetwarzaniu plików CSV/TSV.
- Domyślnie działa na posortowanych plikach tekstowych.
Składnia
Dział zatytułowany „Składnia”join [opcje] plik1 plik2
- Pliki muszą być posortowane względem pola łączącego.
Parametry
Dział zatytułowany „Parametry”Parametr | Opis |
---|---|
-1 N | Wybiera numer pola w pierwszym pliku używanego jako klucz |
-2 N | Wybiera numer pola w drugim pliku używanego jako klucz |
-o LISTA | Określa, które pola mają być wyświetlone w wyniku |
-t ZNAK | Ustawia separator pól (domyślnie spacja) |
-i | Ignoruje różnice wielkości liter w polu klucza |
-a FILENUM | Dołącza wiersze tylko z określonego pliku, nawet jeśli nie mają dopasowania |
-v FILENUM | Wyświetla tylko wiersze bez dopasowania z określonego pliku |
--help | Wyświetla pomoc |
Przykłady użycia
Dział zatytułowany „Przykłady użycia”# 1. Łączenie plików po pierwszym polujoin plik1.txt plik2.txt
# 2. Łączenie po drugim polu w pierwszym pliku i pierwszym w drugimjoin -1 2 -2 1 plik1.txt plik2.txt
# 3. Użycie separatora tabulacjijoin -t $'\t' plik1.txt plik2.txt
- Pierwszy przykład łączy dane domyślnie po pierwszym polu.
- Drugi pozwala łączyć po różnych polach w plikach.
- Trzeci ustawia separator na tabulację.
- Przed użyciem należy posortować pliki względem pola klucza (
sort -kN
). - Polecenie nie działa poprawnie, jeśli dane nie są posortowane.
- Można używać z różnymi separatorami, np. tab, przecinek.
Najczęściej spotykane błędy i jak je naprawić
Dział zatytułowany „Najczęściej spotykane błędy i jak je naprawić”Błąd / Komunikat | Przyczyna | Rozwiązanie |
---|---|---|
join: file 1 is not in sorted order | Plik nieposortowany względem klucza | Posortuj plik przed użyciem (sort -kN ) |
Pusty wynik | Brak wspólnych wartości klucza | Sprawdź poprawność pola klucza i separatora |
Linki i źródła
Dział zatytułowany „Linki i źródła”- man join – dokumentacja systemowa.
- GNU Coreutils – join – opis narzędzia.
- Linux Handbook – join command – poradnik praktyczny.