Připojit se (Unix)

join - příkaz operačních systémů podobných UNIXu , který kombinuje řádky dvou uspořádaných textových souborů na základě přítomnosti společného pole . Jeho funkčnost je podobná operátoru Join používanému v jazyce SQL , ale pracuje s textovými soubory. Tento nástroj napsal Mike Haertel . 

Přehled

Příkaz joinpřijímá dva textové soubory a řadu argumentů jako vstup. Pokud nejsou zadány žádné argumenty příkazového řádku , pak tento příkaz hledá páry řádků ve dvou souborech, které mají odpovídající první pole (posloupnost znaků bez mezer) a vypíše řetězec skládající se z prvního pole a obsahu obou řádků. .

Argumenty programu určují, který znak bude použit místo mezery k oddělení polí řetězce, což bude kontrolováno při hledání odpovídajících řetězců, a zda se mají vypsat neshodné řetězce nebo ne. Data můžete odeslat do třetího souboru pomocí přesměrování .

Syntaxe

Zjednodušená syntaxe může být reprezentována takto:

připojit [možnosti] soubor1 soubor2

Pokud je jako jeden ze souborů zadán "-" (ale ne oba najednou!), pak se místo souboru čte standardní vstup [1] . Soubory musí být seřazeny ve vzestupném lexikografickém pořadí ASCII podle spojovacích polí (obvykle podle prvního pole na každém řádku). Výsledkem operace jsou řádky, jeden pro každou dvojici řádků ze vztahů soubor1 a soubor2, které mají stejná pole spojení. Obvykle se výsledný řetězec skládá ze společného pole, poté ze zbytku řetězce vztahu soubor1 a poté ze zbytku řetězce vztahu soubor2. Ve výchozím nastavení je výstupním oddělovačem mezera. U standardních oddělovačů polí posloupnost řazení nerespektuje úvodní mezery. Pokud je uvedena možnost -t, pak jsou všechny znaky významné. Pokud se název souboru skládá z čísel, může interagovat s volbou -obezprostředně před argumenty souboru [2] .

Příklad

Jako příklad si vezměte následující dva soubory.

Soubor 1:

řádek1 text1 řádek2 text2

Soubor 2:

řádek1 text11 řádek3 text3

Příkaz join(bez zadaných dalších parametrů) vytvoří následující výsledek:

řádek1 text1 text11

V obou souborech se totiž jako první slovo řádku objevilo pouze slovo „řádek1“.

Licence a distribuce

Tento program vlastní Free Software Foundation a je distribuován bez jakékoli záruky jako svobodný software pod GNU General Public License [1] .

Poznámky

  1. 1 2 join(1 ) – manuálová stránka Linuxu Archivováno 1. listopadu 2010 na Wayback Machine  
  2. Příručka pro Unix archivována 4. března 2016 na Wayback Machine  (ruština)

Viz také

Literatura

Odkazy