Join: Difference between revisions
No edit summary |
No edit summary |
||
Line 30: | Line 30: | ||
Näited on esitatud kujul: | Näited on esitatud kujul: | ||
join fail1 fail2 | |||
1 a1 a2 | 1 a1 a2 | ||
2 b1 b2 | 2 b1 b2 | ||
3 c1 c2 | 3 c1 c2 | ||
, kus | , kus esimesel real on käsureale sisestatav käsklus ja järgmistel ridadel '''join''''i väljund terminalis. | ||
Eelnevalt esitatud viisil käivitatakse tööriist selle vaikimisi seadetega. | |||
Vaikimisi seadete puhul: | Vaikimisi seadete puhul: | ||
* kasutatakse failide ühendamisel kummastki failist esimese veeru väärtusi; | * kasutatakse failide ühendamisel kummastki failist esimese veeru väärtusi; | ||
Line 55: | Line 55: | ||
Väljundis on lisaks ridadele, millele leiti teisest failist vaste, vasteta read failist mille järjekorranumber on lisatud võtme -a järele. | 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: | Näiteks: | ||
join -a 1 fail1 fail2 | |||
1 a1 a2 | 1 a1 a2 | ||
2 b1 b2 | 2 b1 b2 | ||
Line 65: | Line 65: | ||
Annab veateate, kui sisendfailides ei ole väärtused korrektselt järjestatud. | Annab veateate, kui sisendfailides ei ole väärtused korrektselt järjestatud. | ||
join --check-order fail1 fail3 | |||
join: fail3:2: is not sorted: 2 b2 | join: fail3:2: is not sorted: 2 b2 | ||
Line 72: | Line 72: | ||
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. | 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 | join: fail3:2: is not sorted: 2 b2 | ||
3 c1 c2 | 3 c1 c2 | ||
join --nocheck-order fail1 fail3 | |||
3 c1 c2 | 3 c1 c2 | ||
Line 120: | Line 120: | ||
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. | 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. | ||
'''-t tähemärk''' | |||
Määrab tähemärgi, mida kasutatakse veergude eraldajana nii sisendfailides kui väljundis. | |||
'''-v faili_number''' | |||
Väljundiks on ainult sellised read valitud järjekorra numbriga failist, millele teisest failist vastet ei leitud. | |||
'''-z''' | |||
'''--zero-terminated''' | |||
Reaeraldajana kasutatakse ASCII LF asemel ASCII NUL tähemärki. ASCII LF kasutatakse veergude eraldajana. | |||
==Kasutatud materjalid== | ==Kasutatud materjalid== | ||
GNU Core Utilities - https://www.gnu.org/software/coreutils/manual/html_node/index.html | |||
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]] | [[Category:Operatsioonisüsteemide administreerimine ja sidumine]] |
Latest revision as of 23:53, 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 esimesel real on käsureale sisestatav käsklus ja järgmistel ridadel join'i väljund terminalis.
Eelnevalt esitatud viisil käivitatakse tööriist selle 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.
-t tähemärk
Määrab tähemärgi, mida kasutatakse veergude eraldajana nii sisendfailides kui väljundis.
-v faili_number
Väljundiks on ainult sellised read valitud järjekorra numbriga failist, millele teisest failist vastet ei leitud.
-z
--zero-terminated
Reaeraldajana kasutatakse ASCII LF asemel ASCII NUL tähemärki. ASCII LF kasutatakse veergude eraldajana.
Kasutatud materjalid
GNU Core Utilities - https://www.gnu.org/software/coreutils/manual/html_node/index.html