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ří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í .
Zjednodušená syntaxe může být reprezentována takto:
připojit [možnosti] soubor1 soubor2Pokud 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] .
Jako příklad si vezměte následující dva soubory.
Soubor 1:
řádek1 text1 řádek2 text2Soubor 2:
řádek1 text11 řádek3 text3Příkaz join(bez zadaných dalších parametrů) vytvoří následující výsledek:
řádek1 text1 text11V obou souborech se totiž jako první slovo řádku objevilo pouze slovo „řádek1“.
Tento program vlastní Free Software Foundation a je distribuován bez jakékoli záruky jako svobodný software pod GNU General Public License [1] .