UNIXový cheat sheet. Martin mhb Böhm, Pavel PeeJay John 2. června control structures 3. 2 /etc/passwd 5. 3 id 5. 4 /etc/group 5.

Podobné dokumenty
Přednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu.

PROGRAMOVÁNÍ V SHELLU

Úvod do Operačních Systémů

BASH. Kouzla s příkazovou řádkou. Petr Koloros

A7B38UOS Úvod do operačních systémů. 6. Cvičení. Příkazy sed a awk

C2110 Operační systém UNIX a základy programování

Proměnné a parametry. predn_08.odt :00:38 1

Přednáška 8. Proměnné. Psaní a ladění skriptů. Parametry skriptu. Vstup a výstup. Konfigurační soubory shellu. Úvod do Operačních Systémů Přednáška 8

Úvod do Operačních Systémů

Úvod do Operačních Systémů

Úvod do UNIXu. Jirka Boháč Gymnázium Jaroslava Seiferta 2003/2004

Systém souborů (File System)

Přednáška 2. Systémy souborů OS UNIX. Nástroje pro práci se souborovým systémem. Úvod do Operačních Systémů Přednáška 2

Nastroje na zpracovani textu:

ZOS CV1 Základy operačních systémů

Sekvenční a podmíněné provádění

Úvod do Operačních Systémů

Základní příkazy OS UNIX

Úvod do UNIXu. Libor Forst

more Program se zastaví vždy po vypsání jedné stránky textu. Ukončení Ctrl+C less Umožňuje pohybovat se v souboru dopředu i dozadu.

awk programovatelný filtr

Tvorba výrazu: speciální znaky shellu se uvádějí do apostrofů jednotlivé části výrazu se oddělují mezerou

Administrace Unixu a sítí. Tomáš Kouba <

PSK3-9. Základy skriptování. Hlavička

PSK3-3. Základní příkazy. Zápis cesty

Přednáška 5. Identita uživatelů, procesů a souborů. Přístupová práva a jejich nastavení. Úvod do Operačních Systémů Přednáška 5

Unix je víceuživatelský a víceúlohový OS

Domácí příprava k předmětu YD38UOS Úloha 10 práce s lokálními soubory pokračování

Úvod do Unixu. man: příkaz pro zobrazení nápovědy k danému příkazu, programu (pokud je k dispozici), např. man cp. pwd: vypíše cestu k aktuální pozici

Identita uživatele (procesu)

Cvičení 3. Plán. Procesy. procesy, jobs Find Wildcards Příklad uživatelé. ZOS 2005, L. Pešička. eryx4> ps x

Programování v jazyce JavaScript

VISUAL BASIC. Práce se soubory

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

Tahák na UOS 2008/2009

Přednáška 4. Regulární výrazy. Filtry grep, sed a awk. Úvod do Operačních Systémů Přednáška 4

Základní příkazy pro práci se soubory

ŘÍDÍCÍ STRUKTURY - PODMÍNKY

Úvod do Linuxu SŠSI Tábor 1

Programování v jazyce JavaScript

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

Regulární výrazy. Vzory

Regulární výrazy. Filtry grep, sed a awk.

Identita uživatele. predn_04.odt :47:03 1

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

LINUX SOUBORY. Zadejme příkaz ls l! V této lekci se odrazíme od dlouhého výpisu příkazu ls a uvidíme, kam nás to zanese. SPŠ Teplice - 3.

Identita uživatelů, přístupová práva. Linux

Linux-příkazový řádek

Univerzita Pardubice Fakulta elektrotechniky a informatiky ISOSY Matěj Trakal

Úloha 3 editor a skripty. připojte se vzdáleně na dray6.feld.cvut.cz heslo získáte na adrese

SPJA, cvičení 1. ipython, python, skripty. základy syntaxe: základní datové typy, řetězce. podmínky: if-elif-else, vyhodnocení logických výrazů

Skripty - úvod. Linux - skripty 2

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

FILTRY V GNU/LINUXU ZLÍNSKÝ KRAJ. Obchodní akademie, Vyšší odborná škola a Jazyková škola s právem státní jazykové zkoušky Uherské Hradiště

SQL a XML jako alternativa ke klasickým unixovým nástrojům

Systém souborů (file system, FS)

Úvod do Operačních Systémů

Administrace OS Windows

Střední odborná škola a Střední odborné učiliště, Hořovice

Úvod. unx-predn_01-uvod.odt :13:43 1

WSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z

UŽIVATEL, SKUPINA, PROCES

Příkaz finger. # finger sam Login: sam Name: Sam Greenfield Directory: /home/sam Shell: /bin/tcsh Last login Sun Dec 25 14:47 (EST) on tty2 No Plan.

Basic256 - úvod do programování Příklady. ing. petr polách

Lekce 25 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ

Základní příkazy UNIXu (Linuxu)

Operační systém UNIX

X36UNX 16. Numerické výpočty v sh příkazy expr, bc, dc. Zdeněk Sojka

1 PRVOCISLA: KRATKY UKAZKOVY PRIKLAD NA DEMONSTRACI BALIKU WEB 1

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

Tipy a triky nejenom v shellu nejenom pro programátory

Cvičení 2. Přesměrování vstupu a výstupu. Posloupnost příkazů. Příkazy pro informaci o uživatelích

LINUX přesměrování a roury

DSL manuál. Ing. Jan Hranáč. 27. října V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

Úvod do Operačních Systémů

Regulární výrazy a grep

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku

Vytvoření pokročilé Fotogalerie v Drupalu - Views

PB161 Programování v C++ Proudy pro standardní zařízení Souborové proudy Paměťové proudy Manipulátory

Se SELinuxem bezpečně

IAJCE Přednáška č. 8. double tprumer = (t1 + t2 + t3 + t4 + t5 + t6 + t7) / 7; Console.Write("\nPrumerna teplota je {0}", tprumer);

C2110 Operační systém UNIX a základy programování

Úvod do UNIXu. Okruh č. 4 - vi, regulární výrazy, grep a sed. Jakub Galgonek. verze r2. inspirováno materiály Davida Hokszy

Seznámení se shellem, textové editory numerické výpočty

for (int i = 0; i < sizeof(hodnoty) / sizeof(int); i++) { cout<<hodonoty[i]<< endl; } cin.get(); return 0; }

Lekce 21 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ

LINUX uživatelské účty (1)

Preprocesor. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016

Semestrální práce z předmětu. Jan Bařtipán / A03043 bartipan@studentes.zcu.cz

NPRG030 Programování I, 2016/17 1 / :58:13

Práce se soubory. Úvod do programování 2 Tomáš Kühr

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Jazyk C# a platforma.net

Ošetřování chyb v programech

Numerické výpočty, komprese a archivace, návratový kód.

NPRG030 Programování I, 2010/11

Cvičení předmětu BI PUN (Pokročilé Unixové Nástroje)

6. Příkazy a řídící struktury v Javě

Instalace a konfigurace OpenAdmin tool na M$ a Linuxu

Speciální soubory. Editace příkazové řádky. $ fg mp3blaster $./skript.sh. [2]+ Stopped./skript.sh $ bg [2]+./skript.sh & $ fg 2./skript.

Transkript:

UNIXový cheat sheet Martin mhb Böhm, Pavel PeeJay John 2. června 2017 Obsah 1 control structures 3 1.1 Příklad:..................................... 3 1.2 while....................................... 3 1.3 Příklad:..................................... 3 1.4 for........................................ 3 1.5 Příklad:..................................... 3 1.6 case....................................... 4 1.7 Příklad:..................................... 4 2 /etc/passwd 5 3 id 5 3.1 Příklad:..................................... 5 3.2 Příklad:..................................... 5 4 /etc/group 5 5 Zamykani 5 5.1 Příklad:..................................... 5 6 /.forward 7 7 ls 0l 7 8 rights 7 9 filesystem 7 10 ps 8 11 date 8 11.1 Příklad...................................... 8 1

12 shell 9 12.1 wildcardy.................................... 9 13 regexp 9 13.1 zakladni struktury............................... 9 13.2 grep....................................... 9 14 find 10 15 sort 10 16 test 10 17 expr 10 18 stat 11 18.1 Příklad:..................................... 11 18.2 Nahrada:.................................... 11 18.3 Náhrada:..................................... 11 19 mail 12 19.1 Příklad:..................................... 12 20 ed 12 21 sed 13 22 awk 13 22.1 funkce...................................... 13 22.2 examples.................................... 13 23 mail structure 14 2

1 control structures if command; then : # commands elif command; then else fi : # commands : # commands 1.1 Příklad: myvariable="konec" if [ $myvariable = "konec" ]; then echo je to konec else echo jeste nekoncime fi Podmínka musí být příkaz - true pokud skončí s 0 nebo false při čemkoliv jiném. Příkaz test condition nebo [ condition ] 1.2 while {while until} [command]; do # prikazy done 1.3 Příklad: while read -r var1 var2 do echo "$var1" "$var2" done < inputfile 1.4 for for [var] in [text]; do # commands done 1.5 Příklad: RESTRICTED="root admin mailer Root" # zkontroluj, jestli LOGIN neni v RESTRICTED # pro dost kratka RESTRICTED 3

# pozor - nepouzivejte uvozovky! Pak by REST # nabyl jen jedne hodnoty - celeho "$RESTRICTED" for REST in $RESTRICTED; do if [ "$REST" = "$LOGIN" ]; then echo "Alert!" fi done 1.6 case case [text] in pattern1 pattern2) # commands ;; esac *) ;; # default commands 1.7 Příklad: # velmi casty priklad - parsovani argumentu na prikazove radce: #!/bin/sh # je rozumne nastavit vychozi cinnosti primo jako vychozi hodnoty promennych # predpokladame, ze jen jedno NAME je dovoleno nastavit v parametrech NAMESET=0 NAME=pepa NEWER= 0 while [ "$#" -gt 0 ]; do case "$1" in -name ) if [ $NAMESET -eq 0 ]; then NAME=$2 NAMESET=1 else echo Too many -name arguments! fi done esac shift 2 ;; -newer ) NEWER=$2 shift 2 ;; * ) echo "$1" >> /tmp/ $$ targets shift 1 ;; echo name= "$NAME" echo newer= "$NEWER" 4

2 /etc/passwd Name:(Password):UserID:PrimaryGroupID:ExtraInfo:HomeDirectory:Shell root:x:0:0:root:/root:/bin/bash 3 id id [login name] zobrazí info o aktuálním uzivateli nebo zadaném uzivateli. 3.1 Příklad: id martin uid=1000(oicw) gid=100(users) groups=16(dialout),33(video),100(users) 3.2 Příklad: vypis vsechny GID skupin, ve kterych martin je id -G martin 1000 4 20 24 25 29 30 44 46 107 109 115 4 /etc/group Obsahuje jenom uzivatele, pro které není grupa jejich primární, přes příkaz id se dá zjistit do kterých skupin uzivatel patří. Name:(Password):GroupID:UserList root:x:0: 5 Zamykani viz Forstovy slidy, je obtizne vytvorit 5.1 Příklad: tenhle postup funguje (testovano - ale na vlastni riziko) je trochu moc slozity, ale v zasade funguje az na pripad ze nas program sleti zrovna na kontrole zamku, coz je nepravdepodobne 5

proc je to tak reseno: a) operaci mkdir bereme jako atomickou b) potrebujeme zkontrolovat, ze nam skript nezuchnul a ostatni hladovi - proto /tmp/appcrlock/pid c) potrebujeme zajistit, aby kontrola, jestli proces pristupujici do kriticke sekce nezuchnul, byla atomicka - druhy zamek kdy je to potreba: skripty ktere pousti nekdo jiny a vickrat, zvlaste pak, pokud checkuji MAILBOX #!/bin/sh # always enter the cycle at least once RV=1 CHK=0 while [ "$RV" -ne 0 ]; do sleep 10 # make sure nobody else is checking mkdir /tmp/appcrcheck 2> /dev/null CHK=$? # lock for check while [ "$CHK" -ne 0 ]; do sleep 10 mkdir /tmp/appcrcheck 2> /dev/null CHK=$? done # begin checking section mkdir /tmp/appcrlock 2> /dev/null RV=$? # if we had no luck, the process might be dead if [ "$RV" -ne 0 ]; then LID= cat /tmp/appcrlock/pid DEAD= ps -p $LID wc -l if [ "$DEAD" -lt 2 ]; then # the process is dead, retake the lock rm /tmp/appcrlock/pid RV=0 fi fi if [ "$RV" -eq 0 ]; then echo "$$" > /tmp/appcrlock/pid fi done # end checking section rmdir /tmp/appcrcheck # begin critical section # end critical section rm -rf /tmp/appcrlock 6

6.forward \kadlp7am /afs/ms.mff.cuni.cz/u/k/kadlp7am/mail_dispatcher první řádek posle e-mail do normální schránky druhý řádek ho posle rourou do skriptu 7 ls -l typ, prava, pocet linku, vlastnik, skupina, delka souboru v bytech, datum+cas posl. modifikace, jmeno -rwxr-x--x 2 forst users 274 Jan 5 17:11 test file types: -... plain text d... directory b,c... device l... symbolic link p... name d... pipes s... sockets options: -l... dlouhý výpis -1... krátký do jednoho sloupce -a... zobrazit skryté -g... potlačit skupiny -t... třídit dle času -r... třídit pozpátku -F... označit typ souboru -R... rekurze -L... sledovat linky -i... vypis souboru s cisly I-nodu 8 rights user (u), group (g), other (o); read (r), write (w), execute (x), sticky bit (t) (/tmp) 9 filesystem /etc/fstab: <file system> <mount point> <type> <options> <dump> <pass> /dev/hda1 / reiserfs notail 0 1 I-node: pocet linku, vlastnik, skupina, prava, typ, velikost, casy, *data ln -s 10 ps ps aux: USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND 7

root 4131 0.0 0.1 1716 404 tty4 Ss+ 00:41 0:00 /sbin/getty 38400 tty4 root 4827 0.0 0.2 13416 768? Ss 00:41 0:00 /usr/sbin/gdm 11 date vypise aktualni datum 11.1 Příklad jak tedy porovnavat cas? Podle specifikace? Nijak - v Single UNIX Specification v2 neni zadny zpusob, jak toto primo z shellu nebo AWK udelat. Forst Te fakt nemuze penalizovat, kdyz to do komentare napises. tedy nelegalni reseni: nelegalni a) date -d date -d "Jun 2 15:51" "+%s" 1212414660 date -d "Aug 6 2007" "+%s" 1186351200 nelegalni b) krmit ls -l --full-time LC_ALL=C ls -l --full-time total 4 -rw-r--r-- 1 martin martin 0 2008-06-02 00:00:00.000000000 +0200 18:19:03.000000000 -rw-r--r-- 1 martin martin 0 2008-06-02 18:19:03.000000000 +0200 file drwxr-xr-x 2 martin martin 4096 2008-06-02 18:19:03.000000000 +0200 one Vyhodou je, ze tento format se: a) da tridit lexikograficky, vetsi cislo -> mladsi soubor b) da pouzit pro touch: touch -d "2008-06-02 18:19:03.000000000 +0200" file funguje nelegalni c) krmit ls --time-style, viz stat example 12 shell $# - počet parametrů scriptu $0 - název scriptu $n - n-tý parametr scriptu shift [n] - posun číslování parametrů 8

set - text - nastavení nových parametrů (set - a + b) $1="a", $2="+", $3="b", $#=3 $* - vsechny parametry scriptu $@ - dtto, ale "$@" je "$1" "$2"... $? - návratový kód posledního příkazu $$ - PID tohoto shellu $! - PID posledního procesu na pozadí 12.1 wildcardy * zadny nebo vice znaku? prave jeden znak [abcde] prave jeden znak z vyctu [a-e] prave jeden znak z rozsahu [!abcde] libovonlny znak, ktery neni na vyctu [!a-e] libovolny znak mimo rozsah {debian,linux} prave jedno kompletni slovo z danych moznosti 13 regexp 13.1 zakladni struktury. - prave jeden libovolny znak ( [a.] znamena a nebo tecka ) [cdef] - prave jeden ze znaku c, d, e, f [^cd] - libovolny znak krome c, d ^ - na zacatku symbolizuje, ze pattern musi byt na zacatku stringu $ - totez co ^ ale na konci \{m,n\} - predchozi element se opakuje m- az n-krat \{m,\} - alespon m-krat \{,n} - nejvyse n-krat * - predchozi element bude nula nebo vicekrat opakovan \(neco\) - oznacuje, ze na neco se pujde odkazat \n - pri pouziti v druhe casti substituce rika, ze zde bude n-te neco 13.2 grep grep [options] PATTERN [FILE...] grep [options] [-e PATTERN -f FILE] [FILE...] pokud clovek nezada posledni FILE cte ze standardniho vstupu -f - file s PATTERNs, pokud jich chceme vic naraz -c - vypise jen zadany pocet radek ktery najde -v - vypisuje radky ktere nevyhovuji regexpu -e PATTERN - vyhodne pouze k tomu, kdyz PATTERN ma zacinat - -H - vypise jmeno souboru ve kterem nasel PATTERN -i - ignore case -m NUM - skonci pote co najde NUM patternu -n - vypisovat cisla radek -o - vypisovat pouze PATTERN a ne celej radek -w - vybere lajny kde PATTERN odpovida celemu slovu -x - vybere jen ty lajny, kde PATTERN odpovida cely lajne 9

14 find find cesta podminka akce -mindepth - minimální hloubka rekurze -maxdepth - maximální hloubka rekurze -regex porovnava cestu s regexpem -newerxy - porovnava casy (specifikovane misto pismen XY) souboru -P - nesledovat symlinky -L - sledovat symlinky -o - or na podmínky -a - and na podmínky 15 sort -kpos1[,pos2]... POS1-ty [az POS2-ty] sloupec je klic -n... numeric (klic je cislo) -r... reverse -t... field separator -u... unique 16 test vhodné přesměrovat stdout do řiti, občas blije nesmysly do konzole -f file - soubor file existuje -d file - soubor file je adresář -L file - soubor file je symbolický link -r file - uzivatel má k souboru file právo r -w file - uzivatel má k souboru file právo w -x file - uzivatel má k souboru file právo x -s file - soubor file má nenulovou délku -z str - řetězec str je prázdný -n str - řetězec str je neprázdný str1 = str2 - rovnost řetězců str1!= str2 - nerovnost řetězců int1 -eq int2 - rovnost čísel (-ne, -lt, -le, -gt, -ge)! - negace, píse se před vlastní podmínku -a - and na podmínky -o - or na podmínky 17 expr operators: a1 a2 - vraci a1 pokud to neni 0, nebo null a1 & a2 - vraci a1 pokud jsou oba rozdilny od 0 a null, jinak vraci 0 a1 < a2 a1 <= a2 a1 = a2 a1!= a2 a1 >= a2 a1 > a2 a1 + a2 a1 - a2 a1 * a2 a1 / a2 10

a1 % a2 - zbytek z a1 po deleni a2 string : regexp - vraci nalezeny patter toho regexpu substr string position length - klasickej substr ale pozice znaku zacina 1kou index string chars - vrati prvni index ve stringu kde se nachazi jeden z chars length string 18 stat stat bohuzel neni ve specifikaci - nicmene mne je to ukradeny, ve specifikaci neni zpusob, jak zaridit praci s daty 18.1 Příklad: inode cislo: stat -c %i. 137227 access time, resp. mtime, resp. ctime od Epochy stat -c "%X %Y %Z". 1212445546 1212445544 1212445544 18.2 Nahrada: vypis inode cislo pro. : ls -ai. head -n 1 843653. 18.3 Náhrada: # nalezni cas v epochalnim tvaru: # taky neni ve specifikaci - tam vlastne neni zadny zpusob # jak tohle vyresit ls -l --time-style "+%s" -rw-r--r-- 1 martin martin 14 1212414134 a drwx------ 2 martin martin 4096 1212439036 Desktop drwxr-xr-x 2 martin martin 4096 1209666175 Dokumenty 19 mail mail [-eiinv] [-b bcc-adress] [-c copy-adress] [-s subject] [-a attachement] komu < Zprava -a odesle prilohu -b odeslat bcc -c odeslat cc -e pokud neprijde zadna zprava, tak se neodesle nic (jinak posila i prazdny mail) 11

-I bezi v interaktivnim modu, ikdyz vstup neni z terminalu - muze clovek pouzivat commandy cely ty aplikace mail -i ignoruje interrupt signaly z terminalu -n nacte /etc/mail.rc driv nez se spusti -v verbose... 19.1 Příklad: # posli mail administratorovi EMAIL=root@forst.cz cat mailcontent miail -s "Information" $EMAIL 20 ed ed [options] file ed [options] file < script_file dávkový editor přístupný z commandlajny, edituje kopii souboru, nutné ulozit před skončením options: -s - vypne diagnostické zprávy addressing:. - současná řádka $ - poslední řádka n - n-tá řádka n,m - řádky mezi n a m včetně -n, ^n - n-tá předchozí řádka /re/ - první následující řádka odpovídající regexu?re? - první předchozí řádka odpovídající regexu lc - řádek označený písmenkem c (viz příkaz k) commands: (.)a (.,.)c (.,.)d g/re/command-list v/re/command-list (...)i (.,.+1)j (.,.)m(.) q (.)r file f file (.)kc (.,.)l (.,.)p (.,.)n (.,.)s/re/replace/ (1,$)w file - appenduje za adresovanou lajnu text (input mode) - změní adresované lajny na text (input mode) - smaze adresované lajny z bufferu - aplikuje command list na lajny odpovídající regexu, v command listu musí být kazdý command na nové lajně a kromě posledního oddělený backslashem. - ditto akorát na lajny neodpovídající regexu - vlozí text před adresovanou lajnu - spojí adresované lajny - přesune adresované lajny za adresu vpravo - ukončí ed - za adresovanou lajnu načte soubor - nastaví default filename - označí lajnu písmenkem c - tiskne vybrané lajny - ditto ale i s jejich čísly - nahrazuje na lajnách regexy replacementem, přípona g - způsobí na celé lajně n jenom n-tý nález. Lze se odkazovat na regex pomocí \n, nebo & - první nahradí n-tou závorku, druhé nahradí namačovaným textem - ulozí soubor 12

21 sed sed [options] commnads file sed [options] -f script_file file streamový editor, který edituje řádek po řádce zadaný soubor a vypisuje na stdout options: -e - zadá příkazy, které se mají provést -f - soubor se skriptem pro sed -i - úprava souboru "in-place" commands: prakticky totozné s edem, pokud je adresován, provede se jenom na řádcích odpovídajících adresám pozor na problémy s \n, typicky není načten, ale při hraní si s pattern a hold space to dělá bordel. d x h H g G p t T label b label - smaze pattern space a spustí dalsí cyklus - prohodí pattern space a hold space - kopíruje/přidá pattern space na hold space - kopíruje/přidá hold space na pattern space - vytiskne pattern space - pokud byl nějaký/nebyl zádný subst. příkaz úspěsný, skoč na label - skoč na label y/abcd/defg/ vsude kde je písmena ze vzoru budou nahrazena odpovídajícími písmeny z obrazu 22 awk 22.1 funkce getline...nacte novou radku z aktualniho souboru getline <var...nacte novou radku ze souboru var getline vraci 0, pokud EOF, 1, pokud OK, -1, pokud chybka 22.2 examples awk BEGIN { i=1; for(i=1; i<=4; i++) { getline < "soubora" letter = $1 getline < "soubor1" number = $1 printf("%s-%s", letter, number) } } END {} *join -1 2 field - bude se spojovat podle pole field v prvnim/druhem souboru -i - ignorovat velikost pismen -e empty - tam kde neni vstup, dej empty -o 1.2, 1.1 - format vystupu je 2. pole z 1. soubotu a 1. pole z 1. souboru 13

*cut *paste 23 mail structure ~/.forward /cesta/k/adresaru/soubor_postove_schranky jina.emailova@adresa.com \vaslogin /cesta/k/adresaru/se/skriptem/jmeno_skriptu parametry pro skript =================================== From zaskodnik@matfyz.cz Thu Jun 9 09:06:05 2005 Return-Path: <zaskodnik@matfyz.cz> X-Original-To: honzik@ss1000.ms.mff.cuni.cz Delivered-To: honzik@ss1000.ms.mff.cuni.cz Received: from localhost (localhost [127.0.0.1]) by ss1000.ms.mff.cuni.cz (Postfix) with ESMTP id E44F12C024 for <honzik@ss1000.ms.mff.cuni.cz>; Thu, 9 Jun 2005 09:06:04 +0200 (CEST) Received: from ss1000.ms.mff.cuni.cz ([127.0.0.1]) by localhost (ss1000 [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 14106-02 for <honzik@ss1000.ms.mff.cuni.cz>; Thu, 9 Jun 2005 09:06:03 +0200 (CEST) Received: from u-pl20 (u-pl20.ms.mff.cuni.cz [195.113.21.150]) by ss1000.ms.mff.cuni.cz (Postfix) with ESMTP id DFEB52C021 for <honzik@ss1000.ms.mff.cuni.cz>; Thu, 9 Jun 2005 09:05:37 +0200 (CEST) From: anicka.dusicka@matfyz.sk Message-Id: <20050609070537.DFEB52C021@ss1000.ms.mff.cuni.cz> Date: Thu, 9 Jun 2005 09:05:37 +0200 (CEST) To: honzik@ss1000.ms.mff.cuni.cz Subject: pranicko Preji Ti hezky den! :-) 14