Join: Difference between revisions

From ICO wiki
Jump to navigationJump to search
No edit summary
Line 1: Line 1:
==Kirjeldus==
==Tutvustus==
 
'''Join''' on üks unixilaadsete operatsioonisüsteemide käsurea tööriistadest, mis tegeleb andmete töötlemisega veergude(väljade)põhiselt. Join kuulub GNU tuumiktööriistade (GNU Core Utilities - coreutils) hulka ja on seega üks paljudest tööriistadest, mis on olemas peaaegu igas unixilaadses operatsioonisüsteemis. Tööriist võimaldab ühendada kahest sisendist pärinevaid andmeid ühe veeru põhjal, mis sisaldab ühesuguseid andmeid.
 
==Kasutus==
 
Kõige lihtsam tööriista kasutus on kujul:
 
join fail1 fail2
, kus fail1 ja fail2 on viited ühendatavate failide asukohale. Failidest ühe võib asendada '-' märgiga, mis tähendab, et sisend võetakse standardsisendist.
 
Siin artiklis on näidete koostamiseks kasutatud järgmisi faile:
 
Fail1
  1 a1
  2 b1
  3 c1
  4 d1  D1
 
Fail2
  1 a2
  2 b2
  3 c2
 
Fail3
  3 c2
  2 b2
  1 a2
 
Näited on esitatud kujul:
 
$ join fail1 fail2
      1 a1 a2
      2 b1 b2
      3 c1 c2
, kus $ real on käsureale sisestatav käsklus ja järgmistel ridadel '''join''''i väljund.
 
Selliselt käivitatakse tööriist vaikimisi seadetega.
Vaikimisi seadete puhul:
* kasutatakse failide ühendamisel kummastki failist esimese veeru väärtusi;
* eeldatakse, et veergude eraldajaks on üks või mitu tühimärki
* tühimärke ridade alguses eiratakse;
* väljundis kasutatakse veeru eraldajana tühikut;
* väljund koosneb ühendavast veerust ja seejärel faili 1 ja faili 2 ülejäänud veergudest.
   
Kui selline käsu toimimine või saadav tulemus, ei rahulda on võimalik tööriista käitumist ja väljastatavat tulemust mõjutada lisades käsklusele võtmeid. Võtmed ja nende mõju on eraldi kirjeldatud järgmises alapeatükis, aga nende üldine kasutusmall käsu sisesatamisel on järgmine:
 
join [võtmed] fail1 fail2
 
===Võtmed===
 
'''-a faili_number'''
 
Väljundis on lisaks ridadele, millele leiti teisest failist vaste, vasteta read failist mille järjekorranumber on lisatud võtme -a järele.
Näiteks:
$join -a 1 fail1 fail2
    1 a1 a2
    2 b1 b2
    3 c1 c2
    4 d1 D1
 
'''--check-order'''
   
Annab veateate, kui sisendfailides ei ole väärtused korrektselt järjestatud.
   
$join --check-order fail1 fail3
    join: fail3:2: is not sorted: 2 b2
 
'''--nocheck-order'''
   
Ei kontrolli väärtuste järjestatust sisendfailides. Tööriist toimib selliselt ka vaikimisi. Ilma käesolevat lippu kasutamata annab tööriist järjestamata veergude puhul samasuguse veateate nagu kasutades lippu '--check-order', aga samas jätkab sellele vaatamata tööd ning kuvab järgmistel ridadel õnnestunud ühendamiste tulemused.
 
$join fail1 fail3
    join: fail3:2: is not sorted: 2 b2
    3 c1 c2
   
$join --nocheck-order fail1 fail3
    3 c1 c2
 
'''-e tekst'''
   
Määrab teksti millega asendatakse sisendis puuduvad väärtused väljundi veergudes.
 
 
'''--header'''
 
Kasutab sisendfailide esimest rida väljundis päisena. Kui sisendfailide päised ei ühti kasutab päiseid esimesest failist.
 
 
'''-i'''
 
'''--ignore-case'''
   
Selle võtme kasutamisel ei ole ühendava väärtuse kontroll tõstutundlik. Andmeread failides peavad, aga olema eelnevalt sorteeritud (sort -f).
 
 
'''-1 veeru_number'''
 
Määrab failide ühendamisel kasutatava veeru järjekorranumbri esimeses failis.
Näiteks käsklus 'join -1 2 fail_x fail_y' kasutaks ühendamisel fail_x teises veerus ja fail_y esimeses (vaikimisi kasutatakse esimest) veerus olevaid andmeid.
 
 
'''-2 veeru_number'''
   
Määrab failide ühendamisel kasutatava veeru järjekorranumbri teises failis.
Näiteks käsklus 'join -2 2 fail_x fail_y' kasutaks ühendamisel fail_y teises veerus ja fail_x esimeses (vaikimisi kasutatakse esimest) veerus olevaid andmeid.
 
'''-j veeru_number'''
   
Kasutatakse juhul, kui failide ühendamisel soovitakse kasutada samade järjekorranumbritega veergusid. Näiteks käsklus 'join -j 2 fail_x fail_y' kasutaks ühendamisel fail_y teises veerus ja fail_x teises veerus olevaid andmeid ja on selliselt lühendatud kuju käsklusele 'join -1 2 -2 2 fail_x fail_y'.
 
   
'''-o veergude_loetelu'''
 
'''-o auto'''
 
Kasutades märksõna 'auto' lähtub tööriist väljundis esitatavate veergude valikul ainult kummagi faili esimesest reast. See tähendab, et väljundis esitatakse täpselt nii palju veerge, kui on failide esimestes ridades -- puuduvad veerud jäävad tühjaks (või saavad asendatud '-e' lipuga määratud tekstiga) ja lisanduvaid veerge eiratakse.
 
Väljundis esitatavaid veerge ja nende järjekorda on kasutajal võimalik vabalt valida kasutades lipu '-o' järel loetelu veeru tähistest kujul 'm.n', kus m on faili ja n veeru järjekorranumber. Erandina tähistatakse ühendamise aluseks olevat veergu numbriga null '0'. Veeru tähistest loetelu moodustamiseks eraldatakse need üksteisest komadega või tühikutega, aga viimasel juhul peab olema veergude loetelu ülakomade vahel.
 
 
==Kasutatud materjalid==
[1] GNU Core Utilities - https://www.gnu.org/software/coreutils/manual/html_node/index.html

Revision as of 01:09, 20 November 2016

Tutvustus

Join on üks unixilaadsete operatsioonisüsteemide käsurea tööriistadest, mis tegeleb andmete töötlemisega veergude(väljade)põhiselt. Join kuulub GNU tuumiktööriistade (GNU Core Utilities - coreutils) hulka ja on seega üks paljudest tööriistadest, mis on olemas peaaegu igas unixilaadses operatsioonisüsteemis. Tööriist võimaldab ühendada kahest sisendist pärinevaid andmeid ühe veeru põhjal, mis sisaldab ühesuguseid andmeid.

Kasutus

Kõige lihtsam tööriista kasutus on kujul:

join fail1 fail2

, kus fail1 ja fail2 on viited ühendatavate failide asukohale. Failidest ühe võib asendada '-' märgiga, mis tähendab, et sisend võetakse standardsisendist.

Siin artiklis on näidete koostamiseks kasutatud järgmisi faile:

Fail1

 1 a1
 2 b1
 3 c1
 4 d1  D1

Fail2

 1 a2
 2 b2
 3 c2

Fail3

 3 c2
 2 b2
 1 a2

Näited on esitatud kujul:

$ join fail1 fail2
     1 a1 a2
     2 b1 b2
     3 c1 c2

, kus $ real on käsureale sisestatav käsklus ja järgmistel ridadel join'i väljund.

Selliselt käivitatakse tööriist vaikimisi seadetega. Vaikimisi seadete puhul:

  • kasutatakse failide ühendamisel kummastki failist esimese veeru väärtusi;
  • eeldatakse, et veergude eraldajaks on üks või mitu tühimärki
  • tühimärke ridade alguses eiratakse;
  • väljundis kasutatakse veeru eraldajana tühikut;
  • väljund koosneb ühendavast veerust ja seejärel faili 1 ja faili 2 ülejäänud veergudest.

Kui selline käsu toimimine või saadav tulemus, ei rahulda on võimalik tööriista käitumist ja väljastatavat tulemust mõjutada lisades käsklusele võtmeid. Võtmed ja nende mõju on eraldi kirjeldatud järgmises alapeatükis, aga nende üldine kasutusmall käsu sisesatamisel on järgmine:

join [võtmed] fail1 fail2

Võtmed

-a faili_number

Väljundis on lisaks ridadele, millele leiti teisest failist vaste, vasteta read failist mille järjekorranumber on lisatud võtme -a järele. Näiteks:

$join -a 1 fail1 fail2 
   1 a1 a2
   2 b1 b2
   3 c1 c2
   4 d1 D1

--check-order

Annab veateate, kui sisendfailides ei ole väärtused korrektselt järjestatud.

$join --check-order fail1 fail3
   join: fail3:2: is not sorted: 2 b2

--nocheck-order

Ei kontrolli väärtuste järjestatust sisendfailides. Tööriist toimib selliselt ka vaikimisi. Ilma käesolevat lippu kasutamata annab tööriist järjestamata veergude puhul samasuguse veateate nagu kasutades lippu '--check-order', aga samas jätkab sellele vaatamata tööd ning kuvab järgmistel ridadel õnnestunud ühendamiste tulemused.

$join fail1 fail3
   join: fail3:2: is not sorted: 2 b2
   3 c1 c2
    
$join --nocheck-order fail1 fail3
   3 c1 c2

-e tekst

Määrab teksti millega asendatakse sisendis puuduvad väärtused väljundi veergudes.


--header

Kasutab sisendfailide esimest rida väljundis päisena. Kui sisendfailide päised ei ühti kasutab päiseid esimesest failist.


-i

--ignore-case

Selle võtme kasutamisel ei ole ühendava väärtuse kontroll tõstutundlik. Andmeread failides peavad, aga olema eelnevalt sorteeritud (sort -f).


-1 veeru_number

Määrab failide ühendamisel kasutatava veeru järjekorranumbri esimeses failis. Näiteks käsklus 'join -1 2 fail_x fail_y' kasutaks ühendamisel fail_x teises veerus ja fail_y esimeses (vaikimisi kasutatakse esimest) veerus olevaid andmeid.


-2 veeru_number

Määrab failide ühendamisel kasutatava veeru järjekorranumbri teises failis. Näiteks käsklus 'join -2 2 fail_x fail_y' kasutaks ühendamisel fail_y teises veerus ja fail_x esimeses (vaikimisi kasutatakse esimest) veerus olevaid andmeid.


-j veeru_number

Kasutatakse juhul, kui failide ühendamisel soovitakse kasutada samade järjekorranumbritega veergusid. Näiteks käsklus 'join -j 2 fail_x fail_y' kasutaks ühendamisel fail_y teises veerus ja fail_x teises veerus olevaid andmeid ja on selliselt lühendatud kuju käsklusele 'join -1 2 -2 2 fail_x fail_y'.


-o veergude_loetelu

-o auto

Kasutades märksõna 'auto' lähtub tööriist väljundis esitatavate veergude valikul ainult kummagi faili esimesest reast. See tähendab, et väljundis esitatakse täpselt nii palju veerge, kui on failide esimestes ridades -- puuduvad veerud jäävad tühjaks (või saavad asendatud '-e' lipuga määratud tekstiga) ja lisanduvaid veerge eiratakse.

Väljundis esitatavaid veerge ja nende järjekorda on kasutajal võimalik vabalt valida kasutades lipu '-o' järel loetelu veeru tähistest kujul 'm.n', kus m on faili ja n veeru järjekorranumber. Erandina tähistatakse ühendamise aluseks olevat veergu numbriga null '0'. Veeru tähistest loetelu moodustamiseks eraldatakse need üksteisest komadega või tühikutega, aga viimasel juhul peab olema veergude loetelu ülakomade vahel.


Kasutatud materjalid

[1] GNU Core Utilities - https://www.gnu.org/software/coreutils/manual/html_node/index.html