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í
×

včera 20:55 | Komunita

Od 18. do 21. května proběhla v Saint-Étienne Linux Audio Conference 2017. Na programu byla řada zajímavých přednášek a seminářů. Videozáznamy přednášek lze zhlédnout na YouTube. K dispozici jsou také články a prezentace.

Ladislav Hagara | Komentářů: 0
včera 20:44 | IT novinky

Hodnota Bitcoinu, decentralizované kryptoměny, překonala hranici 2 200 dolarů. Za posledních 30 dnů tak vzrostla přibližně o 80 % [reddit].

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

Po 5 měsících vývoje od vydání verze 0.12.0 byla vydána verze 0.13.0 správce balíčků GNU Guix a na něm postavené systémové distribuce GuixSD (Guix System Distribution). Na vývoji se podílelo 83 vývojářů. Přibylo 840 nových balíčků. Jejich aktuální počet je 5 454. Aktualizována byla také dokumentace.

Ladislav Hagara | Komentářů: 1
včera 17:22 | Nová verze

Po 5 měsících vývoje a 3 týdnech intenzivního testování byla vydána verze 12 open source systému Nextcloud, forku ownCloudu, umožňujícího provoz vlastního cloudového úložiště. Přehled novinek i s videoukázkami v poznámkách k vydání. Pro vyzkoušení je k dispozici demo.

Ladislav Hagara | Komentářů: 2
včera 11:44 | Zajímavý článek

Týden po prvním číslu publikoval Michal Špaček na svých stránkách druhé číslo newsletteru věnovanému bezpečnosti, bezpečnému vývoji převážně webových aplikací a bezpečnosti uživatelů. Věnuje se výpadku Let's Encrypt, únikům dat, bug bounty pro WordPress nebo SQL Injection v Joomla. Zmiňuje také, že Mozilla plánuje z Firefoxu odstranit podporu pro Encrypted Media Extensions (EME) na nešifrovaném HTTP a nadále pro EME vyžadovat HTTPS.

Ladislav Hagara | Komentářů: 0
včera 02:00 | Pozvánky

Ve středu 31. května 2017 od 17:00 proběhne v pražské pobočce SUSE Den otevřených dveří v SUSE. Čekají vás přednášky o live kernel patchingu a nástroji SaltStack. Také se dozvíte zajímavé informace o SUSE, openSUSE, a vlastně všech produktech, na kterých lidé ze SUSE pracují.

Ladislav Hagara | Komentářů: 4
včera 01:00 | Pozvánky

Czech JBoss User Group srdečně zve na setkání JBUG v Brně, které se koná ve středu 7. června 2017 v prostorách Fakulty informatiky Masarykovy univerzity v místnosti A318 od 18:00. Přednáší Tomáš Livora na téma Fault Tolerance with Hystrix. Více informací na Facebooku a Twitteru #jbugcz.

mjedlick | Komentářů: 0
19.5. 23:22 | Zajímavý projekt

Na Texture Ninja je volně k dispozici více než 4 tisíce textur. Autora lze podpořit na Patreonu.

Ladislav Hagara | Komentářů: 0
19.5. 10:22 | Pozvánky

Mozilla.cz zve na MozBeer Prague #2. Druhé setkání Mozilla.cz proběhne 26. května od 18:00 v Praze v Diversion Bistru v ulici Mělnická.

Ladislav Hagara | Komentářů: 0
18.5. 23:22 | Bezpečnostní upozornění

Průvodce restauracemi Zomato, jenž v roce 2014 koupil Lunchtime.cz, potvrdil bezpečnostní problém. Odcizeno bylo 17 miliónů záznamů o uživatelích (jména, emailové adresy, osolené hashe).

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

    Dotaz: Změna proměnné pomocí SED-u

    13.8.2014 11:42 Jirka
    Změna proměnné pomocí SED-u
    Přečteno: 252×
    Zdravím,
    od rána s tím zápasím a už jsem z toho na nervy.
    Potřebuji najít tento řetězec:
    {key}gain_mode0{/key}
    přičemž číslo může být v rozsahu 0 až 9
    a v následujícím řádku změnit:
    {value}0{/value}
    za
    {value}False{/value}
    Povedlo se mi najít pomocí sed-u ten první řádek, tímto příkazem:
    sed 's/\(gain_mode[0-9]<\/key>\)/\1False/' ale nemůžu se dostat na další řádek ať dělám co dělám.
    Jako pokračování jsem vyzkoušel značky \n $ ^
    Ty mi nefungují.
    Za pomoc děkuji. Musel jsem ručně přepsat všechny stříšky za složené závorky, tady to fórum je nepovoluje. Upozorňuji na to, aby vás to nemátlo.

    Řešení dotazu:


    Odpovědi

    Jendа avatar 13.8.2014 12:23 Jendа | skóre: 73 | blog: Výlevníček | JO70FB
    Rozbalit Rozbalit vše Re: Změna proměnné pomocí SED-u
    tady to fórum je nepovoluje
    Je to HTML. Takže &lt; a &gt;.

    Zeptej se oblíbeného vyhledávač na sed match multiple lines a proklikej si prvních pár výsledků.
    Jendа avatar 13.8.2014 12:24 Jendа | skóre: 73 | blog: Výlevníček | JO70FB
    Rozbalit Rozbalit vše Re: Změna proměnné pomocí SED-u
    Tohle vypadá dobře: sed '/Lorem.*/ {N; s/Lorem.*industry\./string to replace/g}' filename
    13.8.2014 13:01 Jirka
    Rozbalit Rozbalit vše Re: Změna proměnné pomocí SED-u
    Tak jsem našel tenhle příkaz, který zamění pokud se nalézá mezi řádky obsahující gain_mode a param (bohužel včetně). A protože mi pak zamění i ten první řádek, tak jej musím druhým příkazem opravit. Udělal jsem to tedy takto:

    sed '/gain_mode[0-9]<\/key>/,/param/s/0/False/g;s/modeFalse/mode0/'

    Teď by mě ještě zajímalo, jak to udělat, aby to udělalo ve všech souborech v daném adresáři? Stačí přidat hvězdičku na konec?
    13.8.2014 13:51 Alena
    Rozbalit Rozbalit vše Re: Změna proměnné pomocí SED-u
    sed -i "s/bla/ble/" *.txt
    Řešení 1× (Tarmaq)
    13.8.2014 14:08 Jirka
    Rozbalit Rozbalit vše Re: Změna proměnné pomocí SED-u
    Super dík. Takže tohle chodí:

    sed -i '/gain_mode[0-9]/,/param/s/0/False/g;s/modeFalse/mode0/' *.grc
    13.8.2014 14:36 Jirka
    Rozbalit Rozbalit vše Re: Změna proměnné pomocí SED-u
    A takhle mi to udělá ve všech podadresářích:

    find . -type f -name '*.grc' -exec sed -i '/gain_mode[0-9]/,/param/s/0/False/g;s/modeFalse/mode0/' {} \;

    Mimochodem jedná se o aktualizaci GNURadio z verze 3.7.2 na verzi 3.7.3, kdy mi všechny staré skripty přestaly naráz fungovat a tahle "oprava" to vyřešila. Ručně to nešlo.
    Jendа avatar 13.8.2014 17:56 Jendа | skóre: 73 | blog: Výlevníček | JO70FB
    Rozbalit Rozbalit vše Re: Změna proměnné pomocí SED-u
    A teď upgraduješ na 3.7.4 :-).

    Ta nestabilita napříč verzemi je fakt strašná.
    17.8.2014 09:35 Andrej | skóre: 43 | blog: Republic of Mordor | Zürich
    Rozbalit Rozbalit vše Re: Změna proměnné pomocí SED-u
    tady to fórum je nepovoluje

    >>> Opravdu? <<<

    Proč zrovna sed? Podle mě je na to lepší awk. Výstřel od boku (zcela jistě s chybami):

    #!/usr/bin/awk -f
    
    BEGIN { state = 0 }
    state {
            print "<value>False</value>"
            state = 0
            next
    }
    /<key>gain_mode[0-9]<\/key>/ { state = 1 }
    { print $0 }
    

    První možnost je nazvat ten skript třeba convertor a pak spustit ./convertor < vstup > výstup. Druhá možnost je dát celý zdroják awk jako parametr, tj.

    awk 'BEGIN { state = 0 } state { print "<value>False</value>"; state = 0; next } /<key>gain_mode[0-9]<\/key>/ { state = 1 } { print $0 }' < vstup > výstup

    Kdyby náhodou mohl existovat <key> bez <value> nebo pokud je potřeba měnit hodnotu jen tehdy, byla-li původně 0, stačí pozměnit podmínku u druhé klauzule, tj. místo state { … } tam dát například state && /<value>0<\/value>/ { … } To už záleží na tom, jaké je přesně zadání problému.

    Vše výše zmíněné platí v případě, že <key> a <value> jsou vždy samostatně na jednom řádku. Jinak by bylo potřeba doplnit do regulárních výrazů podle potřeby ^ a $, případně místo nahrazení celé řádky použít funkce sub() nebo gsub() v awk — podle toho, jakým způsobem je třeba celý filtr omezit nebo rozšířit. Příkladem použití sub() by bylo odstranění next z druhé klauzule a nahrazení print "<value>False</value>" nad tím za sub(/<value>0<\/value>/, "<value>False</value>"). (sub() v tomto tvaru provede náhradu přímo v proměnné $0, která obsahuje celý řádek, a poslední klauzule pak (díky odstranění next) řádek vypíše.)

    ǑǦŹǓǕǙǞǺǨȞȬḔḦḰḾṊṎṸẄẌỖ

    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.