540 likes | 727 Views
Unix. Príkazy pre prácu s textom. Príkazy pre prácu s textom:. sed awk. colrm column cut paste tr sort. Úvod. unix - mnoho príkazov: vstup - štandardny vstup vystup - štandardný výstup Ako uchovať text zo štandardného výstupu ? presmerovať výstup do súboru ( > )
E N D
Unix Príkazy pre prácu s textom
Príkazy pre prácu s textom: • sed • awk • colrm • column • cut • paste • tr • sort Unix - príkazy pre prácu s textom (Tomáš Karas)
Úvod unix - mnoho príkazov: vstup - štandardny vstup vystup - štandardný výstup Ako uchovať text zo štandardného výstupu ? • presmerovať výstup do súboru ( > ) Ako dostať obsah súboru na vstup programu ? • presmerovať vstup programu ( < ) Unix - príkazy pre prácu s textom (Tomáš Karas)
Úvod Ako spojiť výstup jedného programu zo vstupom druhého programu ? • dátovodom (pipe, rúra, znak | ) • použitím dočasného súboru Dočasné súbory: • vytvárať v adresári /tmp • v názve použiť znak $$ - význam pid • jednoznačný názov v systéme • pred skončením vymazať Unix - príkazy pre prácu s textom (Tomáš Karas)
Úvod Premenné: • uloženie výstupu príkazu do premennej (set,``) set meno = `ls -l` • sprístupnenie obsahu premennej ($) • vypísanie obsahu premennej (echo + sprístupnenie) echo $meno Unix - príkazy pre prácu s textom (Tomáš Karas)
Príkaz colrm • zruší vybrané stĺpce z textu • vstupom je štandardný vstup • výstupom je štandardný výstup Unix - príkazy pre prácu s textom (Tomáš Karas)
Príkaz colrm Použitie: colrm [štart [stop]] • stĺpcom sa chápe jeden znak na riadku • číslovanie stĺpcov sa začína od 1 • štart - vyjadruje prvý stĺpec, ktorý sa má zrušiť • stop - vyjadruje posledný stĺpec, ktorý sa má zrušiť • ak nie je pozícia stop zadaná tak sa pokračuje až do konca riadku Unix - príkazy pre prácu s textom (Tomáš Karas)
Príklad colrm >colrm 3 5 123456789 126789 <eof> >colrm 2 123456 1 > ?: Vysvetlivky: > - znak, ktorým sa hlási operačný systém (prompt) rovné písmená - text zadávaný užívateľom šikmé písmená - výstup programu <eof> - príznak konca súboru (na niektorých termináloch Ctrl D) Unix - príkazy pre prácu s textom (Tomáš Karas)
Príkaz column • naformátuje vstupný text do stĺpcov • vstupom je štandardný vstup alebo súbor zadaný ako argument Unix - príkazy pre prácu s textom (Tomáš Karas)
Príkaz column Použitie: column [-tx] [-c col] [-s sep] [súbor...] -t vytvorí tabuľku (vyrovná stĺpce) -x zlúči stĺpce z viacerých riadkov -c col naformátuje výstup na šírku col stĺpcov -s sep predpíše znaky, ktoré budú použité na oddelenie stĺpcov pri parametri -t Unix - príkazy pre prácu s textom (Tomáš Karas)
Príklad column >column -t miso jano fero maja jozo 3 4 3 5 2 <eof> miso jano fero maja jozo 3 4 3 5 2 > ?: Vysvetlivky: > - znak, ktorým sa hlási operačný systém rovné písmená - text zadávaný užívateľom šikmé písmená - výstup programu <eof> - príznak konca súboru Unix - príkazy pre prácu s textom (Tomáš Karas)
Príkaz cut • vyberie zvolené stĺpce z textu • vstupom je štandardný vstup alebo súbor Unix - príkazy pre prácu s textom (Tomáš Karas)
Príkaz cut Použitie: cut -c list [súbor...] cut -f list [-d delim] [-s] [súbor...] list špecifikuje stĺpce, ktoré sa majú vybrať -c stĺpce sú chápané ako jednotlivé znaky -f stĺpce sú chápané ako znaky oddelené tabulátormi -d delim určuje oddeľovací znak, ktorý sa použije namiesto tabulátora Unix - príkazy pre prácu s textom (Tomáš Karas)
Príkaz cut -s riadky neobsahujúce oddeľovací znak zostanú bez zmeny Unix - príkazy pre prácu s textom (Tomáš Karas)
Príklad cut cut -c 2,4,7 12345678 247 <eof> > ?: Vysvetlivky: > - znak, ktorým sa hlási operačný systém rovné písmená - text zadávaný užívateľom šikmé písmená - výstup programu <eof> - príznak konca súboru Unix - príkazy pre prácu s textom (Tomáš Karas)
Príkaz paste • spojí riadky súborov • vstupom sú súbory alebo štandardný vstup Unix - príkazy pre prácu s textom (Tomáš Karas)
Príkaz paste Použitie: paste [-s] [-d list] súbor... -s spojenie riadkov súborov v takom poradí v akom sú na príkazovom riadku -d list zoznam obsahuje znaky, ktoré sa použijú na oddeľovanie riadkov jednotlivých súborov (cyklicky) Unix - príkazy pre prácu s textom (Tomáš Karas)
Príklad paste súbor a.txt - obsahuje text 11prvy 11druhy 12prvy 12druhy súbor b.txt - obsahuje text 21prvy 21druhy 22prvy 22druhy Unix - príkazy pre prácu s textom (Tomáš Karas)
Príklad paste >paste a.txt b.txt 11prvy 11druhy 21prvy 21druhy 12prvy 12druhy 22prvy 22druhy > ?: Vysvetlivky: > - znak, ktorým sa hlási operačný systém rovné písmená - text zadávaný užívateľom šikmé písmená - výstup programu Unix - príkazy pre prácu s textom (Tomáš Karas)
Príkaz tr • filtruje alebo zamieňa znaky • vstupom je štandardný vstup Unix - príkazy pre prácu s textom (Tomáš Karas)
Príkaz tr Použitie: tr[prepínače] reťazec1 [reťazec2] Prepínače: -d znaky zadané v parametri reťazec1 budú vymazané -c vytvorí doplnok množiny znakov v parametri reťazec1 -s zruší viacnásobný výskyt reťazca zadaného ako parameter reťazec1 alebo reťazec2 vo vstupe Unix - príkazy pre prácu s textom (Tomáš Karas)
Príkaz tr -u výstup nebude zdržiavaný vo vyrovnávacej pamäti Unix - príkazy pre prácu s textom (Tomáš Karas)
Príklad tr >tr “[:lower:]“ “[:upper:]“ MweFd23 MWEFD23 <eof> > ?: Vysvetlivky: > - znak, ktorým sa hlási operačný systém rovné písmená - text zadávaný užívateľom šikmé písmená - výstup programu <eof> - príznak konca súboru Unix - príkazy pre prácu s textom (Tomáš Karas)
Príklad tr tr -cd “[:print:]“ < subor - odfiltruje netlačitelné znaky zo súboru tr -cs “[:alpha:]” “\n“ < subor - vytvorí zoznam slov zo suboru - každé slovo na jednom riadku - slovo je retazec písmen Unix - príkazy pre prácu s textom (Tomáš Karas)
Príkaz sort • usporiada riadky textového súboru • vstupom je súbor alebo štandardný vstup ?: Len všeobecný tvar, kvôli priveľkému počtu prepínačov a ich parametrov. Kompletný tvar: sort [-cmus] [-t separator] [-o output-file] [-T tempdir] [-bdfiMnr] [+POS1[-POS2]] [-k POS1[,POS2]] [file...] Unix - príkazy pre prácu s textom (Tomáš Karas)
Príkaz sort Použitie: sort prepínače-parametre [súbor...] Pracuje v jednom z troch módov: • usporiadanie (implicitný mód) • test usporiadania prepínač -c • zlučovanie a triedenie súborov po skupinách prepínač -m Unix - príkazy pre prácu s textom (Tomáš Karas)
Príklad sort >sort jano andrej <eof> andrej jano > ?: Vysvetlivky: > - znak, ktorým sa hlási operačný systém rovné písmená - text zadávaný užívateľom šikmé písmená - výstup programu <eof> - príznak konca súboru Unix - príkazy pre prácu s textom (Tomáš Karas)
Príklad sort súbor mena - obsahuje text jano andrej miso fero Unix - príkazy pre prácu s textom (Tomáš Karas)
Príklad sort >sort -c mena sort: disorder on mena > ?: Vysvetlivky: > - znak, ktorým sa hlási operačný systém rovné písmená - text zadávaný užívateľom šikmé písmená - výstup programu Unix - príkazy pre prácu s textom (Tomáš Karas)
Príkaz sed • dávkový editor • vstupom je súbor alebo štandardný vstup • výstupom je štandardný výstup Unix - príkazy pre prácu s textom (Tomáš Karas)
Príkaz sed Použitie: sed prepínače príkazy [súbory] príkazy - príkazy programu sed súbory - súbor s príkazmi - súbory s upravovaným textom Unix - príkazy pre prácu s textom (Tomáš Karas)
Príkaz sed Prepínače: -e príkaz - pridá príkaz k zoznamu príkazov -f súbor - pridá príkazy zo súboru k zoznamu príkazov -n - potlačí vypisovanie výstupných riadkov na výstup Unix - príkazy pre prácu s textom (Tomáš Karas)
Príkaz sed Formát príkazov programu sed: [adresa[,adresa]]funkcia[argumenty] adresa - číslo riadku v súbore od začiatku, na ktorom sa daná funkcia vykoná bez adresy - funkcia sa vykoná na všetkých riadkoch znak $ - špeciálna adresa - posledný riadok posledného súboru Unix - príkazy pre prácu s textom (Tomáš Karas)
Príkaz sed Funkcie: d - vybraný riadok sa nezobrazí - vykonávanie príkazov začne od začiatku n - zobrazí riadok a prejde na ďalší riadok vstupného súboru a - pripojí text k vybranému riadku p - vypíše vybraný riadok na výstup - ignoruje nastavenie prepínača -n Unix - príkazy pre prácu s textom (Tomáš Karas)
Príkaz sed Funkcie: (pokračovanie) w subor - podobne ako funkcia p ale výstup je posielaný do súboru r subor - obsah súboru pripojí k vybranému riadku a text - ku vybranému riadku pripojí text Unix - príkazy pre prácu s textom (Tomáš Karas)
Príklad sed subor pokus.txt - obsahuje text riadok jedna riadok dva treti riadok 4. riadok riadok 5 Unix - príkazy pre prácu s textom (Tomáš Karas)
Príklad sed >sed -n ‘2,4 p’ pokus.txt riadok dva treti riadok 4. riadok > ?: Vysvetlivky: > - znak, ktorým sa hlási operačný systém rovné písmená - text zadávaný užívateľom šikmé písmená - výstup programu Unix - príkazy pre prácu s textom (Tomáš Karas)
Príklad sed >sed ‘2 a nove’ pokus.txt riadok jedna riadok dvanove treti riadok 4. riadok riadok 5 > ?: Vysvetlivky: > - znak, ktorým sa hlási operačný systém rovné písmená - text zadávaný užívateľom šikmé písmená - výstup programu Unix - príkazy pre prácu s textom (Tomáš Karas)
Príkaz awk • vyhľadávanie vzorov v texte a vykonávanie akcií • vlastný jazyk pre prácu s textom • mnoho konštrukcií je podobných s C Unix - príkazy pre prácu s textom (Tomáš Karas)
Príkaz awk Použitie: awk -f programovýsúbor [súbory] awk program [súbory] Prepínač -f - program sa načíta z programového súboru Unix - príkazy pre prácu s textom (Tomáš Karas)
Príkaz awk Formát programu pre awk: vzor { akcia } vzor { akcia } ...... ........... • vzor vyberá riadky zo vstupného súboru • na vybranom riadku sa vykoná akcia • ak nie je uvedený vzor akcia sa vykoná na všetkých riadkoch • ak nie je uvedená akcia riadky sa prekopírujú na výstup Unix - príkazy pre prácu s textom (Tomáš Karas)
Príkaz awk Vzory: • regulárne výrazy • provnávacie operátory < <= == != >= > • logické operátory || && • interval riadkov dva vzory oddelené čiarkou • „BEGIN“ akcie sa vykonajú na začiatku • „END“ akcie sa vykonajú na konci Unix - príkazy pre prácu s textom (Tomáš Karas)
Príkaz awk Vzory: (pokračovanie) $číslo - určuje stĺpec v riadku • ~ - vzor sa nachádza v prvom stĺpci # označenie komentára Unix - príkazy pre prácu s textom (Tomáš Karas)
Príkaz awk Akcie: print - vytlačí riadok na výstup • ten možno presmerovať do súboru operátormi > >> • alebo do iného programu operátorom | • $číslo vyberá jeden stĺpec z riadku Unix - príkazy pre prácu s textom (Tomáš Karas)
Príkaz awk Premenné: • umožňuje použiť premenné • NR číslo aktuálneho riadku • $0 aktuálny riadok • NF počet polí v aktuálnom riadku • $1-$n polia v aktuálnom riadku • FS oddeľovač polí na vstupe • OFS oddeľovač polí na výstupe Unix - príkazy pre prácu s textom (Tomáš Karas)
Príkaz awk Premenné: (pokračovanie) • RS oddeľovač riadkov (záznamov) na vstupe • ORS oddeľovač riadkov na (záznamov) výstupe • FILENAME meno vstupného suboru Unix - príkazy pre prácu s textom (Tomáš Karas)
Príkaz awk Funkcie: • length(reťazec) - dĺžka reťazca • int(číslo) - celá časť čísla • index(R1,R2) - vráti pozíciu, kde začína reťazec R2 v reťazci R1 • split(R,P,O) - ukladá prvky R oddelené O do poľa P • substr(R,P,L) - vráti podreťazec R začínajúci na pozícii P dĺžky L Unix - príkazy pre prácu s textom (Tomáš Karas)
Príkaz awk Funkcie: (pokračovanie) • match(S,R) - vráti pozíciu reťazca R v reťazci S - nulu ak sa nenachádza • tolower(R) - skonvertuje reťazec na malé písmená • toupper(R) - skonvertuje reťazec na veľké písmená Unix - príkazy pre prácu s textom (Tomáš Karas)
Príkaz awk Operátory: • ako v jazyku C • * /% + = ++ -- • += -= *= /= %= Unix - príkazy pre prácu s textom (Tomáš Karas)
Príkaz awk Asociatívne polia: • indexami sú reťazce • prístup do poľa: pole [ reťazec ] = hodnota Unix - príkazy pre prácu s textom (Tomáš Karas)