join (Unix)
A join Unix-utasítás a relációs adatbázisokban szokásos join műveletet végzi el két szövegfile között. Az utasítás a két file-t szövegtáblázatnak tekinti, a sorokat egy elválasztó karakterrel (alaphelyzetben helyközzel, de ez változtatható) oszlopokra vágja.
Mindkét file-ban meg kell adni egy-egy speciális kulcsoszlopot. A join összepárosítja az azonos értékeket a két file kulcsoszlopaiban, és az eredményben egyetlen sorként írja ki; a kulcsoszlopot csak egyszer, azt követi az első, majd a második file többi oszlopa.
Mindkét file a saját kulcsoszlopa szerint rendezett kell legyen.
Az utasítás alakja
[szerkesztés]join kapcsolók file1 file2
A kapcsolók egybetűsek, a hozzájuk tartozó értéket helyközzel kell elválasztani.[1] A fontosabbak:
-1 |
oszlop | az első file kulcsnak kijelölt oszlopa (alapérték: 1) |
-2 |
oszlop | a második file kulcsnak kijelölt oszlopa (alapérték: 1) |
-t |
karakter | az oszlopokat elválasztó karakter (alaphelyzetben helyköz)[2] |
-a |
n | filen sorait írja ki akkor is, ha nincs párjuk a másik file-ban (outer join) |
-v |
n | filen azon sorait írja ki, melyeknek nincs párjuk a másik file-ban |
Linuxban ha mindkét file-ban azonos oszlop a kulcs, ezt az oszlopot a -j
kapcsolóval adhatjuk meg.
Példa
[szerkesztés]f1.txt
második, f2.txt
első oszlopa a kulcs. Mindkét file a kulcsra rendezett.
f2.txt
-ben két azonos kulcsú sor található.
|
|
Jegyzetek
[szerkesztés]- ↑ Linuxban ez nem kötelező, de pl. Solarisban igen.
- ↑ Két vagy több egymás utáni elválasztó karakter egy oszlophatárnak számít.
- ↑ Az SQL-utasítás csak akkor hajtható végre, ha f1 és f2 azonos számú és típusú oszlopokkal rendelkezik. A fenti utasítás csak analógia.