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 11:33 | IT novinky

Red Hat kupuje společnost Codenvy stojící za stejnojmenným webovým (cloudovým) integrovaným vývojovým prostředím (WIDE) postaveném na Eclipse Che.

Ladislav Hagara | Komentářů: 0
dnes 08:55 | Nová verze

V listopadu 2014 byl představen fork Debianu bez systemd pojmenovaný Devuan. Po dva a půl roce jeho vývojáři oznámili vydání první stabilní verze 1.0. Jedná se o verzi s dlouhodobou podporou (LTS) a její kódové jméno je Jessie, podle planetky s katalogovým číslem 10 464.

Ladislav Hagara | Komentářů: 6
včera 20:22 | Zajímavý článek

Nadace Raspberry Pi vydala již osmapadesáté číslo (pdf) stostránkového anglicky psaného časopisu MagPi věnovanému Raspberry Pi a projektům postaveným na tomto jednodeskovém počítači a druhé číslo (pdf) časopisu Hello World primárně určeného pro učitele informatiky a výpočetní techniky.

Ladislav Hagara | Komentářů: 0
včera 19:55 | Humor

Portál Stack Overflow informuje na svém blogu, že pomohl ukončit editor Vim už více než milionu vývojářů. V loňském roce například hledal odpověď na otázku Jak ukončit editor Vim v průměru 1 z 20 000 návštěvníků.

Ladislav Hagara | Komentářů: 10
včera 19:22 | Nová verze

Po pěti měsících od vydání verze 3.5.0 byla vydána nová stabilní verze 3.6.0, tj. první z nové řady 3.6, minimalistické linuxové distribuce zaměřené na bezpečnost Alpine Linux (Wikipedie). Z novinek lze zmínit například podporu dvou nových 64bitových platforem little-endian POWER machines (ppc64le) a IBM z Systems (s390x) nebo nové balíčky Rust 1.17.0, Cargo 0.18.0, GHC 8.0.2 a Julia 0.5.2.

Ladislav Hagara | Komentářů: 0
24.5. 21:33 | Bezpečnostní upozornění

V Sambě byla nalezena a opravena bezpečnostní chyba CVE-2017-7494. Má-li útočník právo ukládat soubory na vzdálený server, může tam uložit připravenou sdílenou knihovnu a přinutit smbd server k jejímu načtení a tím pádem ke spuštění libovolných příkazů. Chyba je opravena v upstream verzích 4.6.4, 4.5.10 a 4.4.14. Chyba se týká všech verzí Samby od verze 3.5.0 vydané 1. března 2010.

Ladislav Hagara | Komentářů: 5
24.5. 20:44 | Nová verze

Byla vydána nová stabilní verze 4.3.0 integrovaného vývojového prostředí (IDE) Qt Creator. Z novinek lze zmínit například integraci editoru kódu do Qt Quick Designeru.

Ladislav Hagara | Komentářů: 1
24.5. 20:11 | Bezpečnostní upozornění

Společnost Check Point informuje na svém blogu o novém vektoru útoku. Pomocí titulků lze útočit na multimediální přehrávače VLC, Kodi, Popcorn Time, Stremio a pravděpodobně i další. Otevření útočníkem připraveného souboru s titulky v neaktualizovaném multimediálním přehrávači může vést ke spuštění libovolných příkazů pod právy uživatele. Ukázka na YouTube. Chyba je opravena v Kodi 17.2 nebo ve VLC 2.2.6.

Ladislav Hagara | Komentářů: 11
23.5. 15:18 | Zajímavý software

CrossOver, komerční produkt založený na Wine, je dnes (23. 5. 2017) dostupný ve slevě. Roční předplatné linuxové verze vyjde s kódem TWENTYONE na $21, resp. $1 v případě IP z chudších zemí. Firma CodeWeavers, která CrossOver vyvíjí, významně přispívá do Wine. Přidaná hodnota CrossOver spočívá v přívětivějším uživatelském rozhraní, integraci do desktopu a podpoře.

Fluttershy, yay! | Komentářů: 26
23.5. 15:11 | Zajímavý projekt

V únoru loňského roku bylo představeno několik útoků na celou řadu bezdrátových klávesnic a myší s názvem MouseJack. Po více než roce lze chybu opravit, tj. aktualizovat firmware, také z Linuxu. Richardu Hughesovi se podařilo navázat spolupráci se společností Logitech, získat od nich dokumentaci, přesvědčit je, aby firmware poskytovali přímo a ne jako součást .exe souboru, aby mohl být popis začleněn do služby Linux Vendor Firmware Service (LVFS) a aktualizace tak mohla proběhnou přímo z Linuxu pomocí projektu fwupd.

Ladislav Hagara | Komentářů: 2
Chystáte se pořídit CPU AMD Ryzen?
 (6%)
 (32%)
 (1%)
 (8%)
 (44%)
 (9%)
Celkem 620 hlasů
 Komentářů: 62, poslední 19.5. 01:57
    Rozcestník

    Dotaz: Sed či Awk script na odstranění C komentářů

    7.7.2005 02:12 © | skóre: 37 | blog: escaped
    Sed či Awk script na odstranění C komentářů
    Přečteno: 222×
    Dobrý den,

    při veškeré snaze co mám se mi nedaří napsat regulární výraz na odstranění jakoby C komentářů.

    Vzorek:
    ---cut---
    // toto nezustane
    toto zustane 1
    toto zustane 2 // toto nezustane
    toto zustane 3
    /*
    toto nezustane
    */
    toto zustane 4
    toto zustane 5 /* toto nezustane
    toto nezustane
    */
    toto zustane 6
    toto zustane 7 /* toto nezustane */
    toto zustane 8
    /* toto nezustane */ toto zustane 9
    /*
    toto nezustane */ toto zustane 10
    --cut---
    
    Pokud komentář zabírá celý samostatný řádek nebo nějaká jeho část zabírá celý samostatný řádek, měl by být tento řádek zcela vymazán (např. 3 zakomentované řádky za "toto zustane" č. 3 z uvedeného vzorku by tedy zcela zmizely).

    Pokud komentář začíná na konci řádku (viz "toto zustane" 2, 5, 7, 9 ve vzorku), měl by být odmazán a odmazány by měly být všechny zbylé mezery či tabulátory na konci takového řádku.

    Pokud je komentář na začátku a následuje za ním další kód (viz. "toto zustane" 9 a 10 ve vzorku), měl by být kromě komentáře samotného odmazány i všechny mezery či tabulátory před kódem tak, aby se ocitl na začátku řádku.

    Výstupem scriptu spuštěného na uvedený vzorek by jednoduše mělo být:
    ---cut---
    toto zustane 1
    toto zustane 2
    toto zustane 3
    toto zustane 4
    toto zustane 5
    toto zustane 6
    toto zustane 7
    toto zustane 8
    toto zustane 9
    toto zustane 10
    ---cut---
    
    Vím, že je to poměrně složité (ostatně, kdyby to bylo jednoduché, neptal bych se zde).

    PS: Ujišťuji vás, že rozhodně nejde o žádný DÚ, jak je tu dobrým zvykem se domnívat. Opravdu to potřebuji k reálné věci. Nástroje Sed a Awk musí být použity proto, že script, do něhož to potřebuji, poběží na stroji s nainstalovaným základním systémem bez Perlu či podobných nástrojů.

    Děkuji za pomoc.

    Odpovědi

    7.7.2005 02:23 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
    Rozbalit Rozbalit vše Re: Sed či Awk script na odstranění C komentářů
    Už jsem tohle taky jednou psal a nikdy jsem to nedokopal do rozumného stádia :-) ... Nakonec jsem použil nějaký program, teď jsem našel mangle, ale nevím jestli to je ono.
    7.7.2005 02:45 © | skóre: 37 | blog: escaped
    Rozbalit Rozbalit vše Re: Sed či Awk script na odstranění C komentářů
    Problém je, že já to potřebuji v Sedu nebo v Awku (Gawku). Každopádně tu ten odkaz nalezne třeba někdo jiný, komu by se to hodilo.
    7.7.2005 02:43 8an | skóre: 30
    Rozbalit Rozbalit vše Re: Sed či Awk script na odstranění C komentářů
    sed '/^ *\/\//d;s/ *\/\/.*//;:1;/^ *\/\*.*\*\/ *$/d;s/ *\/\*.*\*\/ *//;/\/\*/N;/\/\*/b1;'

    Zjištění jak to funguje ponechávám jako těžší cvičení pro čtenáře :-D
    If you build an operating system that even an idiot can use, only idiots will use it.
    7.7.2005 02:47 © | skóre: 37 | blog: escaped
    Rozbalit Rozbalit vše Re: Sed či Awk script na odstranění C komentářů
    To je naprosto dokonalé. Děkuji! Prostuduji si to.
    7.7.2005 03:05 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
    Rozbalit Rozbalit vše Re: Sed či Awk script na odstranění C komentářů
    A zjištění, že to nefunguje taky? :-)
    $ cat head.c 
    /*
     * komentar
     */
    
    $ sed '/^ *\/\//d;s/ *\/\/.*//;:1;/^ \/\.*\*\/ *$/d;s/ \/\.*\*\/ *//;/\/\*/N;/\/\*/b1;' head.c 
    /*
     * komentar
     */
    
    
    7.7.2005 07:46 © | skóre: 37 | blog: escaped
    Rozbalit Rozbalit vše Re: Sed či Awk script na odstranění C komentářů
    Vidíte, na tento případ jsem ve vzorku zapoměl. :-(
    7.7.2005 08:05 © | skóre: 37 | blog: escaped
    Rozbalit Rozbalit vše Re: Sed či Awk script na odstranění C komentářů
    Mě to tedy funguje (máte to blbě opsané):
    sed '/^ *\/\//d;s/ *\/\/.*//;:1;/^ *\/\*.*\*\/ *$/d;s/ *\/\*.*\*\/ *//;/\/\*/N;/\/\*/b1;' test
    
    cat test
    // toto nezustane
    toto zustane 1
    toto zustane 2 // toto nezustane
    toto zustane 3
    /*
    toto nezustane
    */
    toto zustane 4
    toto zustane 5 /* toto nezustane
    toto nezustane
    */
    toto zustane 6
    toto zustane 7 /* toto nezustane */
    toto zustane 8
    /* toto nezustane */ toto zustane 9
    /*
    toto nezustane */ toto zustane 10
    /*
     * toto nezustane
     */ toto zustane 11
    toto zustane 12
    toto zustane 13 /*
        * toto nezustane
        */
    /*
     * toto nezustane
     */
    toto zustane 14
    
    7.7.2005 09:32 Matouš Jan Fialka
    Rozbalit Rozbalit vše Re: Sed či Awk script na odstranění C komentářů
    Přesto jsem jednu chybičku našel:
    /*
     * toto nezustane
     */     toto zustane
    
    kde bílé místo za koncem komentáře sestává i z tabulátoru a zůstane, což plně nevyhovuje podmínkám toho původního zadání.

    Takže malá úprava by mohla být takováto (raději to někdo po mě projeďte, ale jen jsem přidal místo mezery [ \t]):
    sed '/^ *\/\//d;s/ *\/\/.*//;:1;/^ *\/\*.*\*\/ *$/d;s/ *\/\*.*\*\/[ \t]*//;/\/\*/N;/\/\*/b1;'
    
    7.7.2005 12:54 8an | skóre: 30
    Rozbalit Rozbalit vše Re: Sed či Awk script na odstranění C komentářů
    Místo všech mezer je potřeba dát [ \t], neboli sed 's/ /[ \\t]/g'.

    sed '/^[ \t]*\/\//d;s/[ \t]*\/\/.*//;:1;/^[ \t]*\/\*.*\*\/[ \t]*$/d;s/[ \t]*\/\*.*\*\/[ \t]*//;/\/\*/N;/\/\*/b1;'
    If you build an operating system that even an idiot can use, only idiots will use it.
    7.7.2005 09:42 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: Sed či Awk script na odstranění C komentářů
    Trochu kratší:
    sed -ne 'H;${x;s://[^\n]*::g;s:/\*\([^*]*\(\*[^/]\)\?\)*\*/::g;p}
    Škoda, že ani gnu sed neumí *?, pak by to bylo úplně triviální.
    7.7.2005 09:44 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: Sed či Awk script na odstranění C komentářů
    Jo sorry, tohle neodmazává ty mezery.

    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.