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

    Byly vyhlášeny výsledky letošní volby vedoucího projektu Debian (DPL, Wikipedie). Novým vedoucím je Andreas Tille.

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

    Po osmi měsících vývoje byla vydána nová verze 0.12.0 programovacího jazyka Zig (GitHub, Wikipedie). Přispělo 268 vývojářů. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 23:55 | Pozvánky

    Poslední měsíc byl plný zajímavých akcí, o kterých Vám bastlíři z projektu MacGyver mohou povědět, protože se na ně sami vydali. Kde všude byli, ptáte se? Objevili se na Installfestu, Arduino Day, Hackaday Europe a tajném srazu bastlířů z Twitteru. A z každé akce pro vás mají zajímavé poznatky.

    … více »
    bkralik | Komentářů: 0
    včera 11:44 | IT novinky

    Mezinárodní nezisková organizace Women Who Code (WWCode, Wikipedie) založena v roce 2011 s cílem usnadnit ženám vstup do světa informačních technologií nečekaně skončila. Došly finance.

    Ladislav Hagara | Komentářů: 7
    19.4. 18:00 | IT novinky

    DuckDuckGo AI Chat umožňuje "pokecat si" s GPT-3.5 Turbo od OpenAI nebo Claude 1.2 Instant od Anthropic. Bez vytváření účtu. Všechny chaty jsou soukromé. DuckDuckGo je neukládá ani nepoužívá k trénování modelů umělé inteligence.

    Ladislav Hagara | Komentářů: 1
    19.4. 14:22 | IT novinky

    VASA-1, výzkumný projekt Microsoftu. Na vstupu stačí jediná fotka a zvukový záznam. Na výstupu je dokonalá mluvící nebo zpívající hlava. Prý si technologii nechá jenom pro sebe. Žádné demo, API nebo placená služba. Zatím.

    Ladislav Hagara | Komentářů: 6
    19.4. 04:44 | Nová verze

    Nová čísla časopisů od nakladatelství Raspberry Pi: MagPi 140 (pdf) a HackSpace 77 (pdf).

    Ladislav Hagara | Komentářů: 0
    19.4. 01:00 | Nová verze

    ESPHome, tj. open source systém umožňující nastavovat zařízení s čipy ESP (i dalšími) pomocí konfiguračních souborů a připojit je do domácí automatizace, například do Home Assistantu, byl vydán ve verzi 2024.4.0.

    Ladislav Hagara | Komentářů: 0
    18.4. 22:11 | IT novinky Ladislav Hagara | Komentářů: 0
    18.4. 20:55 | Nová verze

    Neziskové průmyslové konsorcium Khronos Group vydalo verzi 1.1 specifikace OpenXR (Wikipedie), tj. standardu specifikujícího přístup k platformám a zařízením pro XR, tj. platformám a zařízením pro AR (rozšířenou realitu) a VR (virtuální realitu). Do základu se z rozšíření dostalo XR_EXT_local_floor. Společnost Collabora implementuje novou verzi specifikace do platformy Monado, tj. open source implementace OpenXR.

    Ladislav Hagara | Komentářů: 4
    KDE Plasma 6
     (68%)
     (11%)
     (2%)
     (19%)
    Celkem 585 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    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: 165×
    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.