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 05:11 | Nová verze

    Organizace Apache Software Foundation (ASF) vydala verzi 30 integrovaného vývojového prostředí a vývojové platformy napsané v Javě NetBeans (Wikipedie). Přehled novinek na GitHubu. Instalovat lze také ze Snapcraftu a Flathubu.

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

    Byla vydána nová verze 7.0 svobodného open source redakčního systému WordPress. Kódové jméno Armstrong bylo vybráno na počest amerického jazzového trumpetisty a zpěváka Louise Armstronga (What A Wonderful World).

    Ladislav Hagara | Komentářů: 0
    dnes 04:55 | Bezpečnostní upozornění

    V Drupalu byla nalezena a opravena kritická zranitelnost SA-CORE-2026-004 (CVE-2026-9082). Útočník může provádět libovolné SQL dotazy na webech používajících databázi PostgreSQL.

    Ladislav Hagara | Komentářů: 0
    včera 14:11 | Komunita

    Richard Hughes oznámil, že službu Linux Vendor Firmware Service (LVFS) umožňující aktualizovat firmware zařízení na počítačích s Linuxem, nově sponzoruje také společnost HP.

    Ladislav Hagara | Komentářů: 3
    včera 13:33 | IT novinky

    O víkendu proběhla demopárty Outline 2026. Publikována byla prezentovaná dema. Upozornit lze na 16 bajtové, opravdu šestnáct bajtové, zvukově obrazové demo Wake Up! 16b (YouTube).

    Ladislav Hagara | Komentářů: 2
    včera 04:22 | Nová verze

    Byla vydána nová verze 9.5 multiplatformní digitální pracovní stanice pro práci s audiem (DAW) Ardour. Přehled novinek, vylepšení a oprav v poznámkách k vydání a na YouTube.

    Ladislav Hagara | Komentářů: 0
    19.5. 21:00 | IT novinky

    Dnes a zítra probíhá vývojářská konference Google I/O 2026. Sledovat lze na YouTube a na síti 𝕏 (#GoogleIO).

    Ladislav Hagara | Komentářů: 0
    19.5. 19:00 | Nová verze

    Canonical vydal Ubuntu Core 26. Vychází z Ubuntu 26.04 LTS a podporováno bude 15 let. Ubuntu Core je minimální neměnný operační systém určený pro vestavěné systémy.

    Ladislav Hagara | Komentářů: 0
    19.5. 16:22 | Nová verze

    Bylo vydáno OpenBSD 7.9. Po dlouhé době opět se songem: Diamond in the Rough.

    Ladislav Hagara | Komentářů: 0
    19.5. 16:00 | Nová verze

    Byl vydán Mozilla Firefox 151.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 151 bude brzy k dispozici také na Flathubu a Snapcraftu.

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

    Dotaz: Jak na kontrolu znaků

    24.2.2013 18:31 Martin
    Jak na kontrolu znaků
    Přečteno: 328×
    Dobrý večer, nemá někdo bash podmínku-script který dokáže zjistit, jestli daný řetězec obsahuje pouze znaky malé znaky bez diakritiky a čísla? Nesmí obsahovat háčky, čárky, velké znaky, mezery, tečky, limítka, podtržítka, pomlčky prostě nic, jen abcdefghijklmnoprstvwxyz0123456789 Může někdo znalý pomoci? Děkuji Martin

    Odpovědi

    24.2.2013 18:35 chrono
    Rozbalit Rozbalit vše Re: Jak na kontrolu znaků
    if [[ "retazec" =~ ^[a-z0-9]*$ ]]
    then
        echo "retazec je OK"
    fi
    
    24.2.2013 20:51 potato
    Rozbalit Rozbalit vše Re: Jak na kontrolu znaků
    if [[ "retazec" =~ '^[a-z0-9]*$' ]]
    paranoi není nikdy dost.
    24.2.2013 22:18 rubicon
    Rozbalit Rozbalit vše Re: Jak na kontrolu znaků
    Což o to, zdravá opatrnost není na škodu, ale v tomhle případě radíte špatně.

    "Any part of the pattern may be quoted to force it to be matched as a string."

    Pokud $retazec neobsahuje identickou posloupnost znaků mezi uvozovkami, bude návratová hodnota 1, což tazatel zajisté nechtěl.
    24.2.2013 22:52 potato
    Rozbalit Rozbalit vše Re: Jak na kontrolu znaků
    Mea culpa, [[ ... ]] je svérázná konstrukce, uvnitř níž neprobíhají některé expanze. Navíc neexistuje způsob, jak zapsat totéž pomocí test, takže jsme se opět syntakticky přiblížili perlu :(
    25.2.2013 08:09 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Jak na kontrolu znaků
    Navíc neexistuje způsob, jak zapsat totéž pomocí test, takže jsme se opět syntakticky přiblížili perlu :(

    Jste si jistý, že neexistuje? Co třeba

      if [ -z "${str//[[:alnum:]]}" ]; then
          ...
      fi
    

    Mimochodem, "[0-9a-z]" u mne v locale cs_CZ.UTF-8 zahrnuje všechna malá i velká písmena kromě ž, Z a Ž. Pochybuji, že to je to, co měl tazatel na mysli.

    25.2.2013 09:22 chrono
    Rozbalit Rozbalit vše Re: Jak na kontrolu znaků
    [[:alnum:]] zase zahŕňa aj veľké písmená. :) (takže správna kombinácia bude [[:lower:][:digit:]] )
    25.2.2013 09:24 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Jak na kontrolu znaků
    Jak je zmíněno v příspěvku, na který odpovídáte, [a-z] také - tedy aspoň většinu z nich.
    25.2.2013 15:03 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Jak na kontrolu znaků
    Správná kombinace to nebude, protože malá písmena s nabodeníčky nejsou o nic menší, než malá písmena bez nich, takže [:lower:] zahrnuje i ty háčkované a čárkované, kroužkované nevyjímaje, a to jsem zatím jen u češtiny či slovenčtiny, takže si ještě račme přenastaviti locale :-)
    25.2.2013 20:11 potato
    Rozbalit Rozbalit vše Re: Jak na kontrolu znaků
    Myslel jsem test na regulární výraz obecně, který je v bashi možný pouze pomocí [[ ... ]].

    Lokalizace je samozřejmě při skriptování mor, protože příkazy mají zřídka jasnou hranici mezi výstupem pro člověka a výstupem pro další zpracování, a jediná pomoc je automaticky export LC_ALL=C v každém skiptu, který čte výstup čehokoli nebo pracuje se znaky.
    25.2.2013 14:56 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Jak na kontrolu znaků
    Ono je vůbec otázka proč to psát pomocí test, když stačí grep.
    if grep -q "^[[:lower:][:digit:]]*$" <<<"123abc"; then
      echo "ok..."
    fi
    A v tom [[ ]] nemusíte dávat do uvozovek ani ten $retezec, když jsme u toho, takže ano, při porovnávání s test lze očekávat spíš odlišnosti než podobnosti.
    25.2.2013 15:33 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Jak na kontrolu znaků
    Ono je vůbec otázka proč to psát pomocí test, když stačí grep

    Příkaz test je v bashi builtin, grep ne. Tedy aspoň zatím ne. :-)

    25.2.2013 15:07 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Jak na kontrolu znaků
    retezec="abcdefghijklmnoprstvwxyz0123456789"
    
    LC_ALL=C
    
    if [[ $retazec =~ ^[[:lower:][:digit:]]*$ ]]
    then
        echo "retazec je OK"
    fi
    a případně vrátit locale zpět.

    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.