Deltage (Unix)

join - en kommando af UNIX-lignende operativsystemer, der kombinerer linjerne i to ordnede tekstfiler baseret på tilstedeværelsen af ​​et fælles felt . Dens funktionalitet ligner Join -operatoren, der bruges i SQL -sproget , men fungerer på tekstfiler. Dette værktøj er skrevet af Mike Haertel . 

Oversigt

Kommandoen jointager to tekstfiler og en række argumenter som input. Hvis der ikke gives nogen kommandolinjeargumenter , søger denne kommando efter par af linjer i to filer, der har et matchende første felt (en sekvens af ikke-mellemrumstegn) og udsender en streng bestående af det første felt og indholdet af begge linjer .

Programargumenterne bestemmer, hvilket tegn der vil blive brugt i stedet for et mellemrum til at adskille felterne i strengen, som vil blive kontrolleret, når man leder efter matchende strenge, og om der skal udskrives uoverensstemmende strenge eller ej. Du kan udlæse data til en tredje fil ved hjælp af omdirigering .

Syntaks

Forenklet syntaks kan repræsenteres som følger:

join [valgmuligheder] fil1 fil2

Hvis "-" er angivet som en af ​​filerne (men ikke begge på én gang!), så læses standardinput [1] i stedet for filen . Filer skal sorteres i stigende ASCII leksikografisk rækkefølge efter forbindelsesfelter (normalt efter det første felt på hver linje). Resultatet af operationen er rækker, én for hvert par rækker fra fil1- og fil2-relationer, der har de samme sammenføjningsfelter. Typisk består resultatstrengen af ​​det fælles felt, derefter resten af ​​fil1-relationsstrengen og derefter resten af ​​fil2-relationsstrengen. Som standard er outputseparatoren et mellemrum. For standardfeltseparatorer respekterer sorteringssekvensen ikke indledende mellemrum. Hvis indstillingen er givet -t, er alle tegn signifikante. Hvis filnavnet består af tal, kan det interagere med muligheden -oumiddelbart før filargumenterne [2] .

Eksempel

Tag de følgende to filer som eksempel.

Fil 1:

linje1 tekst1 linje2 tekst2

Fil 2:

linje1 tekst11 linje3 tekst3

Kommandoen join(uden yderligere parametre bestået) vil give følgende resultat:

linje1 tekst1 tekst11

Dette skyldes, at kun ordet "line1" optrådte i begge filer som det første ord i linjen.

Licens og distribution

Dette program ejes af Free Software Foundation og distribueres uden nogen garanti som gratis software under GNU General Public License [1] .

Noter

  1. 1 2 join(1 ) - Linux man page Arkiveret 1. november 2010 på Wayback Machine  
  2. Unix Handbook Arkiveret 4. marts 2016 på Wayback Machine  (russisk)

Se også

Litteratur

Links