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 02:11 | Komunita

    Všem čtenářkám a čtenářům AbcLinuxu krásné Vánoce.

    Ladislav Hagara | Komentářů: 0
    dnes 02:00 | Nová verze

    Byla vydána nová verze 7.0 linuxové distribuce Parrot OS (Wikipedie). S kódovým názvem Echo. Jedná se o linuxovou distribuci založenou na Debianu a zaměřenou na penetrační testování, digitální forenzní analýzu, reverzní inženýrství, hacking, anonymitu nebo kryptografii. Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    včera 18:33 | Nová verze

    Vývojáři postmarketOS vydali verzi 25.12 tohoto před osmi lety představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME Shell on Mobile, KDE Plasma Mobile, Phosh a Sxmo.

    Ladislav Hagara | Komentářů: 0
    včera 13:55 | Nová verze

    Byla vydána nová verze 0.41.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 6.1 nebo novější a také libplacebo 6.338.2 nebo novější.

    Ladislav Hagara | Komentářů: 0
    včera 12:44 | Nová verze

    Byla vydána nová verze 5.5 (novinky) skriptovacího jazyka Lua (Wikipedie). Po pěti a půl letech od vydání verze 5.4.

    Ladislav Hagara | Komentářů: 0
    22.12. 23:44 | Nová verze

    Byla vydána nová verze 5.4.0 programu na úpravu digitálních fotografií darktable (Wikipedie). Z novinek lze vypíchnout vylepšenou podporu Waylandu. Nejnovější darktable by měl na Waylandu fungovat stejně dobře jako na X11.

    Ladislav Hagara | Komentářů: 0
    21.12. 05:00 | Nová verze

    Byla vydána beta verze Linux Mintu 22.3 s kódovým jménem Zena. Podrobnosti v přehledu novinek a poznámkách k vydání. Vypíchnout lze, že nástroj Systémová hlášení (System Reports) získal mnoho nových funkcí a byl přejmenován na Informace o systému (System Information). Linux Mint 22.3 bude podporován do roku 2029.

    Ladislav Hagara | Komentářů: 2
    21.12. 01:55 | Nová verze

    GNU Project Debugger aneb GDB byl vydán ve verzi 17.1. Podrobný přehled novinek v souboru NEWS.

    Ladislav Hagara | Komentářů: 0
    19.12. 17:22 | IT novinky

    Josef Průša oznámil zveřejnění kompletních CAD souborů rámů tiskáren Prusa CORE One a CORE One L. Nejsou vydány pod obecnou veřejnou licenci GNU ani Creative Commons ale pod novou licencí OCL neboli Open Community License. Ta nepovoluje prodávat kompletní tiskárny či remixy založené na těchto zdrojích.

    Ladislav Hagara | Komentářů: 14
    19.12. 17:00 | Komunita

    Nový CEO Mozilla Corporation Anthony Enzor-DeMeo tento týden prohlásil, že by se Firefox měl vyvinout v moderní AI prohlížeč. Po bouřlivých diskusích na redditu ujistil, že v nastavení Firefoxu bude existovat volba pro zakázání všech AI funkcí.

    Ladislav Hagara | Komentářů: 1
    Kdo vám letos nadělí dárek?
     (30%)
     (1%)
     (10%)
     (3%)
     (1%)
     (3%)
     (13%)
     (22%)
     (15%)
    Celkem 67 hlasů
     Komentářů: 17, poslední dnes 00:24
    Rozcestník

    Dotaz: regulární výraz v sedu

    Pavel Dobeš avatar 24.2.2005 23:28 Pavel Dobeš | skóre: 21 | Praha
    regulární výraz v sedu
    Přečteno: 236×
    Zdravím,

    potřeboval bych udělat takovou maličkost, kterou vím jak dělat, ale hledám elegantnější řešení...

    Mám soubor a v něm mě zajímá jedna řádka a na ní to co je v (prvních) uvozovkách...

    umím: cat ./soubor|grep identifikator|sed "s/prvni_odsekly\|druhy_odsekly//g"

    a vim, ze to jde i 'jen' pomoci sedu

    neco jako: sed -e "s/prvni_odsekly\|druhy_odsekly//g" -e "NECO" ./soubor

    Ale jak má vypadat to NECO?

    Jak mám zkonstruovat v sedu regularni vyraz, kde nastavím, že to neobsahuje skupinu písmen. Vim, že jde [^abc], ale já bych potřeboval znegovat právě 'abc' a ne všechny výskyty 'a', 'b' nebo 'c'.

    PaD
    Windows? A kdo to ještě používá?

    Odpovědi

    24.2.2005 23:42 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: regulární výraz v sedu
    Gratuluji, získal jsi cenu ;-)

    Jinak řešení je (nechápu odeskly prvni ani druhy, takže se držím zadání vypsat věc v prvních uvozovkách):
    sed '/identifikator/s/[^"]*"\([^"]*\)".*/\1/;t;d' soubor
    
    Pavel Dobeš avatar 25.2.2005 00:47 Pavel Dobeš | skóre: 21 | Praha
    Rozbalit Rozbalit vše Re: regulární výraz v sedu
    Diky ;)

    Ja nevim k cemu vlastne ten prikaz cat je... kdyz se nesmi pouzivat. Muzu vedet nejaky lepsi (kratsi), ktery vypise sobor na st. vystup a kazdemu je hned jasne, co dela? Popravde receno misto toho cat tam bude vystup z programu. Takze jsem moc nepremyslel, jak to napsat bez cat, kdyz ten cat vlastne v konecnem dusletku nepouziju. A kdyz neco zkousim, tak je mi prijemejsi na zacatek hodit cat a nedavat na konec prizkazu < ./soubor, protoze ho potom zbytecne preskakuju...

    Ja znam regex hlavne z php a to mnohdy jinde nefunguje ;( A tady by me to pouziti ;t;d nenapadlo (se sedem si ani moc nevykam, natoz tykat). A sed v praktickych prikladech... to jsem taky nikde moc nevidel...

    Jeste se zeptam... Jde udelat takove reseni i pomoci (g)awk? Ja vim, kdyz uz mam reseni pomoci sedu, proc chci zkouset i awk, ale neda mi to...

    A k tomu reg. vyrazu: me by zajimalo, jestli jde nejak formulovat ^[^abc]*\$ ale pro 'abc'? Protoze bez negace to je jednoduche... ^.*abc.*\$... ale jak udelat doplnkovy reg. vyraz, to netusim...

    Diky PaD
    Windows? A kdo to ještě používá?
    Pavel Dobeš avatar 25.2.2005 00:51 Pavel Dobeš | skóre: 21 | Praha
    Rozbalit Rozbalit vše Re: regulární výraz v sedu
    jj, s tim cat to je dobry... uz jsem se zacetl ;)
    Windows? A kdo to ještě používá?
    25.2.2005 00:55 VícNežNic | skóre: 42 | blog: Spáleniště | Ne dost daleko
    Rozbalit Rozbalit vše Re: regulární výraz v sedu
    Když to nikomu neřekneš, tak si můžeš grepovat a catovat jak chceš, věř mi ;-)
    Copak toho není dost?
    Pavel Dobeš avatar 25.2.2005 01:06 Pavel Dobeš | skóre: 21 | Praha
    Rozbalit Rozbalit vše Re: regulární výraz v sedu
    Ja vim, ze pustit sest ruznych programu v kolone je vlastne filosofie unixu (na vsechno mit jednoucelovou utilitu). Ale ono to zpomaluje. A on je i jeden grep navic poznat ;)

    PaD
    Windows? A kdo to ještě používá?
    25.2.2005 09:08 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: regulární výraz v sedu
    No jestli chceš v sedu něco dělat s řádky, které neobsahují na řádku nikde abc, tak se to dělá /abc/!<akce>. Uvnitř reguláru je to obtížnější a řeší se to vypsáním všech možností co tam mohou být, což je pěkná pruda. Vždy je lepší se zamyslet jestli je to skutečně nutné a jestli to náhodou nejde obejít. Jinak ve vimu, grepu a snad i další exituje něco jako negativní hledání.
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    25.2.2005 09:38 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: regulární výraz v sedu
    Příklad reguláru, který nikdy nenamatchuje abc je třeba \([^a]\|a[^b]\|ab[^c]\)
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    25.2.2005 10:47 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: regulární výraz v sedu
    Negativní matchování je feature PCRE, tudíž ho umí všechno, co umí PRCE, např. perl, grep, php. Kromě toho mají vim a python vlastní negativní matchování (s jinou syntaxí).
    25.2.2005 11:13 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
    Rozbalit Rozbalit vše Re: regulární výraz v sedu
    Tohle matchuje mj. všechno, co obsahuje znak různý od a, takže třeba abc ;-) U klasických nebo rozšířených regexpů bych to řešil hrubou silou -- nakreslit si konečný automat a z něj vytvořit ten regexp.
    26.2.2005 09:39 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: regulární výraz v sedu
    Prdlačky švagrová. Namatchuje bc, ale nikdy ne abc. Samozřejmě to musíš použít uvnitř nějakého reguláru, třeba chci najít = za nímž nenásleduje abc a nahradit ho středníkem, s/=\([^a]\|a[^b]\|ab[^c]\)/;\1/. Nebo chci nahradit = před nímž nesmí být abc /\([^c]\|[^b]c\|[^a]bc\)=/\1;/. Zkrátka použít něco se silnějším regexpem je IMHO lepší.
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    26.2.2005 12:54 twofish
    Rozbalit Rozbalit vše Re: regulární výraz v sedu
    třeba chci najít = za nímž nenásleduje abc a nahradit ho středníkem, s/=\([^a]\|a[^b]\|ab[^c]\)/;\1/
    I to je spatne, protoze to nenahradi = na konci vstupu (radky), ale to je detail. Pavel Dobes se totiz ptal na doplnek k ^.*abc.*$, napr jako soucast vyrazu matchujiciho rovnitko nasledovane posloupnosti znaku neobsahujici abc.
    ^=(|c|bc)([^a]|a[^b]|ab[^c])*$
    
    Pro jednoduchost to je v rozsirenych regularnich vyrazech a predpokladam jedno rovnitko ve vstupu (jinak se do [^ prida rovnitko, pripadne se ty znaky urci jeste restriktivneji /jenom pismena apod/). ^ a $ se nahradi za predchazejici / nasledujici regularni vyraz, pokud to ma byt soucasti nejakeho vetsiho regularniho vyrazu.

    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.