Przejdź do głównej zawartości

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.

Okno terminala
join [opcje] plik1 plik2
  • Pliki muszą być posortowane względem pola łączącego.

ParametrOpis
-1 NWybiera numer pola w pierwszym pliku używanego jako klucz
-2 NWybiera numer pola w drugim pliku używanego jako klucz
-o LISTAOkreśla, które pola mają być wyświetlone w wyniku
-t ZNAKUstawia separator pól (domyślnie spacja)
-iIgnoruje różnice wielkości liter w polu klucza
-a FILENUMDołącza wiersze tylko z określonego pliku, nawet jeśli nie mają dopasowania
-v FILENUMWyświetla tylko wiersze bez dopasowania z określonego pliku
--helpWyświetla pomoc

Okno terminala
# 1. Łączenie plików po pierwszym polu
join plik1.txt plik2.txt
# 2. Łączenie po drugim polu w pierwszym pliku i pierwszym w drugim
join -1 2 -2 1 plik1.txt plik2.txt
# 3. Użycie separatora tabulacji
join -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.

Błąd / KomunikatPrzyczynaRozwiązanie
join: file 1 is not in sorted orderPlik nieposortowany względem kluczaPosortuj plik przed użyciem (sort -kN)
Pusty wynikBrak wspólnych wartości kluczaSprawdź poprawność pola klucza i separatora