abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 04:11 | Nová verze

    Omarchy je linuxová distribuce s dlaždicovým správcem oken Hyprland. Založena je na Arch Linuxu. Vydána byla v nové verzi 3.7.0 - The Gaming Edition. Z novinek lze vypíchnout příkaz omarchy a celou řadu herních možností.

    Ladislav Hagara | Komentářů: 0
    dnes 03:11 | Nová verze

    CyberChef byl vydán v nové major verzi 11. Přehled novinek v Changelogu. CyberChef je webová aplikace pro analýzu dat a jejich kódování a dekódování, šifrování a dešifrování, kompresi a dekompresi, atd. Často je využívaná při kybernetických cvičeních a CTF (Capture the Flag).

    Ladislav Hagara | Komentářů: 0
    včera 20:11 | Nová verze

    Byla vydána nová verze 2.4.67 svobodného multiplatformního webového serveru Apache (httpd). Řešeno je mimo jiné 11 zranitelností.

    Ladislav Hagara | Komentářů: 0
    včera 14:44 | Zajímavý software

    Brush (Bo(u)rn(e) RUsty SHell) je v Rustu napsaný shell kompatibilní s Bash (Bourne Again SHell). Vydána byla verze 0.4.0.

    Ladislav Hagara | Komentářů: 2
    včera 04:44 | Komunita

    Google zveřejnil seznam 1 141 projektů (vývojářů) od 184 organizací přijatých do letošního, již dvaadvacátého, Google Summer of Code. Přihlášeno bylo celkově 23 371 projektů od 15 245 vývojářů ze 131 zemí.

    Ladislav Hagara | Komentářů: 3
    včera 03:00 | Komunita

    Na čem pracovali vývojáři GNOME a KDE Plasma minulý týden? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.

    Ladislav Hagara | Komentářů: 0
    3.5. 03:44 | Nová verze

    Open source počítačová hra na hrdiny NetHack (Wikipedie, GitHub) byla vydána v nové verzi 5.0.0. První verze této hry byla vydána v roce 1987.

    Ladislav Hagara | Komentářů: 4
    1.5. 15:11 | IT novinky

    Evropská komise naléhavě vyzvala členské státy EU, aby kvůli ochraně nezletilých na internetu urychlily zavádění unijní aplikace pro ověřování věku a zajistily její dostupnost do konce roku. Členské státy mohou zavést aplikaci EU pro ověřování věku jako samostatnou aplikaci nebo ji integrovat do takzvané evropské peněženky digitální identity.

    Ladislav Hagara | Komentářů: 45
    30.4. 23:33 | Nová verze

    Richard Biener oznámil vydání verze 16.1 (16.1.0) kolekce kompilátorů pro různé programovací jazyky GCC (GNU Compiler Collection). Jedná se o první stabilní verzi řady 16. Přehled změn, nových vlastností a oprav a aktualizovaná dokumentace na stránkách projektu. Některé zdrojové kódy, které bylo možné přeložit s předchozími verzemi GCC, bude nutné upravit.

    Ladislav Hagara | Komentářů: 0
    30.4. 23:11 | Nová verze

    Zulip Server z open source komunikační platformy Zulip (Wikipedie, GitHub) byl vydán ve verzi 12.0. Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (9%)
     (2%)
     (14%)
     (31%)
     (4%)
     (7%)
     (3%)
     (16%)
     (24%)
    Celkem 1496 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Dotaz: awk NEBO

    23.4.2007 14:55 Terka | skóre: 13
    awk NEBO
    Přečteno: 394×
    ze souboru
    a
    a
    a
    b
    b
    b
    c
    c
    c
    d
    d
    d
    potrebuji dostat vsechny a-c. chci to delat zpusobem
    awk '/c/||/a/,/c/ {print}' #to chodi
    awk '/a/,/c/||/c/ {print}' #ale nechodi proc?
    otazka. c. 2: jak udelat obdobnou ulohu pomoci sedu? diky!

    Odpovědi

    23.4.2007 15:53 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: awk NEBO
    Ad 1.) Není jednodušší awk '/[a-c]/'?

    Ad 2.) sed '/[^a-c]/d'

    Ovšem úplně nejrozumnější (ovšem tohle vypadá jako školní úloha ;-)) je použít grep '[a-c]'
    When your hammer is C++, everything begins to look like a thumb.
    23.4.2007 16:26 ..... | skóre: 18 | Pardubice
    Rozbalit Rozbalit vše Re: awk NEBO

    Čárka v awk odděluje dva vzory a příslušná akce se vykoná pro rozsah od řádku, který vyhovuje prvnímu vzoru, do nejbližšího řádku, který vyhovuje druhému vzoru (včetně). Pokud se najde další řádek vyhovující prvnímu vzoru, tak se začne znovu.

    '/c/||/a/,/c/' vybírá rozsahy od řádku obsahujícího a nebo c do prvního řádku obsahujícího c.

    '/a/,/c/||/c/' vybírá rozsahy od řádku obsahujícího a do prvního řádku obsahujícího c.

    Hint: podívej se odkud kam ty podmínky platí

    24.4.2007 11:10 Terka | skóre: 13
    Rozbalit Rozbalit vše Re: awk NEBO
    aha.
    jde mi to vytisknout vsechny radky od radku obsahujiciho 
    a vcetne
    do
    c vcetne vsech dalsich jeste obsahujicich c 
    priklad:
    
    ---soubor---
    a
    a
    a
    b
    1111 22222 3333333
    1111 22222 3333333
    b
    b
    cccc
    cccc
    cccc
    d
    d
    cc
    
    
    --tisk:-------------------------
    a
    a
    a
    b
    1111 22222 3333333
    1111 22222 3333333
    b
    b
    cccc    <- awk pro /a/,/c/ skonci tady
    cccc
    cccc    <- chci skoncit tisk u tohoto radku
    d       <- toto a dal uz nechci tisknout
    d
    cc
    ---------
    tj. /a/,/c/ ale neskoncit u 1. c, tisknout i dalsi c ktere navazuji.
    
    
    
    
    24.4.2007 15:21 ..... | skóre: 18 | Pardubice
    Rozbalit Rozbalit vše Re: awk NEBO

    Jo, pro takovou úlohu je awk ideální, mně přijde nejjednodušší pomoct si stavovou proměnnou. Možností je víc.

    awk '!s && /a/       { s = 1 }
    s && /c/        { s = 2 }
    s == 2 && !/c/  { exit }
    s               { print }'
    

    Tohle začne vypisovat na a a skončí při posledním c.

    25.4.2007 10:03 Terka | skóre: 13
    Rozbalit Rozbalit vše Re: awk NEBO
    Díky, funguje to, ale nerozumím tomu jak. Můžeš prosím k tomu přidat komentář? Díky!
    25.4.2007 11:20 ..... | skóre: 18 | Pardubice
    Rozbalit Rozbalit vše Re: awk NEBO
    Snad pomůže, když to bude víc ukecaný:
    # Když narazím na "a" nebo posléze na "c", tak si to
    # poznamenám
    !stav && /a/                 { stav = "nalezeno a" }
    stav == "nalezeno a" && /c/  { stav = "nalezeno c" }
    
    # Jsem za "c", ale na řádku už "c" není -> konec zpracování
    stav == "nalezeno c" && !/c/ { exit }
    
    # stav je nastaven, takže jsem už našel "a" takže řádek
    # vytisknu
    stav                         { print }
    

    awk zpracovává pravidla v pořadí, v jakém je dostane a pokud je splněná podmínka, tak vykoná akci (a to může ovlivnit platnost dalších podmínek). Jestli ti není jasný, jak awk funguje, tak pomůže man nebo nějaká literatura.

    25.4.2007 15:41 Terka | skóre: 13
    Rozbalit Rozbalit vše Re: awk NEBO
    musi byt v 1. radku

    !stav &&

    ?
    25.4.2007 16:15 ..... | skóre: 18 | Pardubice
    Rozbalit Rozbalit vše Re: awk NEBO
    To !stav má význam ve chvíli, kdy už je stav "nalezeno c". Kdyby tam nebylo, tak by třeba na vstup,
    a
    b
    c
    a
    d
    
    awk odpovědělo stejně, ale když tam je, tak skončí po opsání třetího řádku.
    25.4.2007 19:11 *
    Rozbalit Rozbalit vše Re: awk NEBO
    no ten test na to !stav tam asi byt nemusi jestli chapu spravne co dela { exit }
    25.4.2007 19:12 *
    Rozbalit Rozbalit vše Re: awk NEBO
    ale to by to pravidlo s exitem muselo byt samozrejme prvni, aby matchnulo jeste pred tim /a/
    25.4.2007 19:19 *
    Rozbalit Rozbalit vše Re: awk NEBO
    jo a jeste jedna vec. to s tim printem... awk pousti vic bloku? jako vsechny u kterych vyhovi podminky?

    a nebo je potreba ten print zopakovat pro kazdy ten matchovaci radek co meni stav pokud chce clovek to "vcetne"
    25.4.2007 15:43 Terka | skóre: 13
    Rozbalit Rozbalit vše Re: awk NEBO
    Neznam tu konstrukci "s je prazdne/neprazdne". Proto jsem to nechapala. Diky za ochotu.
    25.4.2007 16:27 ..... | skóre: 18 | Pardubice
    Rozbalit Rozbalit vše Re: awk NEBO

    V té původní verzi se testovalo s je/není rovno nule a stejně v awk funguje je/není prázdný řetězec. Neinicializovaná proměnná má hodnotu 0 nebo prázdný řetězec podle kontextu.

    s == 0 && /a/   { s = 1 }
    # v tomhle případě tady může být i s == 1
    s != 0 && /c/   { s = 2 }
    s == 2 && !/c/  { exit }
    s != 0          { print }
    
    25.4.2007 16:53 Terka | skóre: 13
    Rozbalit Rozbalit vše Re: awk NEBO
    diky s == 0 && /a/ je jasne !s && /a/ mi je taky jasne, ale predtim nebylo

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.