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í
×
    16.10. 15:55 | Nová verze

    Memtest86+ (Wikipedie), svobodný nástroj pro kontrolu operační paměti, byl vydán ve verzi 9.00. S podporou architektury AArch64 (ARM64).

    Ladislav Hagara | Komentářů: 0
    16.10. 03:44 | IT novinky

    Společnost Fairphone stojící za stejnojmennými mobilními telefony představila (pdf) bezdrátová špuntová sluchátka Fairbuds 2. Opravitelná, s vyměnitelnými bateriemi a tříletou zárukou. Cena 119 eur.

    Ladislav Hagara | Komentářů: 6
    16.10. 03:33 | Pozvánky

    O víkendu 17. a 18. října lze na brněnském výstavišti navštívit s jednou vstupenkou dvě akce: Maker Faire Brno, festival inovací, kreativity a kutilství, a GameDev Connect, akci určenou pro všechny současné a hlavně budoucí herní vývojáře.

    Ladislav Hagara | Komentářů: 1
    15.10. 20:33 | Nová verze

    Canonical vydal (email) Ubuntu 26.10 Stonking Stingray. Přehled novinek v poznámkách k vydání. Jedná se o průběžné vydání s podporou 9 měsíců, tj. do července 2027.

    Ladislav Hagara | Komentářů: 1
    15.10. 16:44 | IT novinky

    České Radiokomunikace (CRA) ve čtvrtek odstřelily rozhlasový vysílač Liblice B, dosud nejvyšší stavbu v Česku. O demolici dvou 355 metrů vysokých stožárů rozhodly z důvodu jejich nevyužívání, už v úterý přitom zhasly a demontovaly jejich osvětlení.

    Ladislav Hagara | Komentářů: 28
    15.10. 02:44 | IT novinky

    Microsoft Defender nově podporuje linuxové desktopy.

    Ladislav Hagara | Komentářů: 17
    14.10. 21:00 | Komunita

    Oficiální Epic Games Launcher je v nové preview verzi poprvé dostupný i pro Linux (FAQ). Pracuje se na novém Easy Anti-Cheatu pro Linux (EAC Linux v2) a podpoře hry Fortnite na Linuxu.

    Ladislav Hagara | Komentářů: 7
    14.10. 13:44 | Nová verze

    Desktopové prostředí KDE Plasma bylo vydáno ve verzi 6.8. Novinky zahrnují lepší podporu vzdálené plochy, sdílení a nahrávání obrazovky a řadu drobností napříč uživatelským rozhraním (úplný seznam změn, shrnutí ve wiki).

    ʚĭɞ 🍉 | Komentářů: 36
    14.10. 10:55 | IT novinky

    Apple představil 7palcový displej Apple HomeView s podporou Apple Intelligence a Siri AI pro ovládání chytré domácnosti, novou řadu vybavení chytré domácnosti Apple Home Collection, další generaci HomePodu mini a novou Apple TV 4K. Apple HomeView není v Evropské unii v prodeji, jelikož umělá inteligence Siri v rámci systému iOS v EU momentálně není k dispozici. Apple spolupracuje s EU a snaží se najít cestu, jak situaci vyřešit.

    Ladislav Hagara | Komentářů: 8
    14.10. 03:55 | Komunita

    KDE slaví 30 let. Přesně před 30 lety, 14. října 1996, poslal Matthias Ettrich do diskusní skupiny comp.os.linux.misc zprávu, která započala historii projektu KDE. Důležité milníky jsou zobrazeny na časové ose.

    Ladislav Hagara | Komentářů: 3
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (29%)
     (8%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2859 hlasů
     Komentářů: 32, poslední 11.10. 17:02
    Rozcestník

    Dotaz: sed - substituce promenou nefunguje

    4.10.2009 03:44 anon123 | skóre: 35 | blog: ganomi
    sed - substituce promenou nefunguje
    Přečteno: 621×

    Ahoj.

    Pisu malej skriptik a nefunguje mi substituce s promenou u sed.

    changeName(){
    SPEED="$(echo ${LINEARRAY[8]} | sed -e 's/<[^>]*>//g' speedline.txt | sed -e 's/Speed://g')"
    TEMP=$(echo ${LINEARRAY[1]})  | sed  "s/-[0-9]*/'SPEED'/"
    echo -e "$TEMP"
    }

    Vyzkousel jsem:

    TEMP=$(echo ${LINEARRAY[1]})  | sed  "s/-[0-9]*/'"SPEED"'/"
    TEMP=$(echo ${LINEARRAY[1]})  | sed  's/-[0-9]*/'SPEED'/'
    TEMP=$(echo ${LINEARRAY[1]})  | sed  "s/-[0-9]*/${SPEED}/"

    Hazi mi to error:

    sed: -e expression #1, char 36: unknown option to `s'
    

    Zajimave je, ze na konzoli to funguje:

    echo -e "   <name>-265</name>" | sed -e 's/-[0-9]*/'$LOGNAME'/'

     

    Muzete nekdo poradit?
    Dik

    Odpovědi

    4.10.2009 04:10 anon123 | skóre: 35 | blog: ganomi
    Rozbalit Rozbalit vše Re: sed - substituce promenou nefunguje

    Uprava:
    v mem prispevku jsem zapomnel na "$" pred SPEED.

    Takze spravne:

    TEMP=$(echo ${LINEARRAY[1]})  | sed  "s/-[0-9]*/'"$SPEED"'/"
    TEMP=$(echo ${LINEARRAY[1]})  | sed  's/-[0-9]*/'$SPEED'/'
    TEMP=$(echo ${LINEARRAY[1]})  | sed  "s/-[0-9]*/${SPEED}/"

    Toto hazi error, kdyz to mam ve scriptu.


    4.10.2009 07:45 l4m4
    Rozbalit Rozbalit vše Re: sed - substituce promenou nefunguje
    Takovou věc bych napsal v něčem, co umí nahrazování regulárních výrazů samo (pytho, ruby, perl, ...) a nespouštěl tisíckrát sed, který je navíc řádkově orientovaný, takže je problém s elementy přes víc řádků
    < tag a="b"
              c="d">
    a tohle
    sed -e 's/<[^>]*>//g' speedline.txt | sed -e 's/Speed://g'
    se taky normálně napíše
    sed -e 's/<[^>]*>//g' -e 's/Speed://g' speedline.txt
    nebo s GNU sedem
    sed 's/<[^>]*>//g;s/Speed://g' speedline.txt
    K původnímu dotazu: proměnná $LOGNAME zřejmě obsahuje znaky, které jsou v daném kontextu pro sed speciální (řekl bych, že lomítko). Je možno hodnotu proměnné oescapovat (např. dalším sedem)
    LOGNAME=$(sed 's/[\/...]/\\\0/g' <<<"$LOGNAME")
    ale je to celé šílený postup, který se používá nanejvýš v configure, protože to musí být ultrapotrabilní a nepoužívat nic použitelného. Správný postup je použít pro řešení problému nástroj, který je k tomu vhodný.
    4.10.2009 11:10 anon123 | skóre: 35 | blog: ganomi
    Rozbalit Rozbalit vše Re: sed - substituce promenou nefunguje

    Chapu co tim chces rici, ale nebudu se 30 dni ucit neco, co pouziji jenom jednou. Navic to potrebuji co nejdrive, volim tedy nastroj, kterym se to da zvladnout co nejdriv.

    Jinak diky za ty upravy. To samozrejme implementuji.

    Splacal jsem to takto:

    changeName(){
    
    SPEED="$(echo ${LINEARRAY[8]} | sed -e 's/<[^>]*>//g' | sed -e 's/.*Speed://g')"
    
    TEMP1=$(echo -e "${LINEARRAY[1]}" | sed -e 's/-[0-9]*<\/name>//')
    TEMP2=$(echo -e "${LINEARRAY[1]}" | sed -e 's/.*<name>-[0-9]*//')
    
    TEMP=$TEMP1$SPEED$TEMP2
    LINEARRAY[1]=$TEMP
    }
    
    4.10.2009 19:10 pozortucnak | skóre: 21 | blog: vecny_windowsar
    Rozbalit Rozbalit vše Re: sed - substituce promenou nefunguje
    Perl je na tohle v pohode... nic se učit nemusíš
    echo aaa | perl -pe "s/aaa/$USER/g"
    
    Jsem mimořádně obtížný případ
    5.10.2009 01:00 l4m4
    Rozbalit Rozbalit vše Re: sed - substituce promenou nefunguje
    Toto samozřejmě trpí identickým problémem, pokud je $USER proměnná shellu, kterou cpeš do zdrojáku perlu. Jiná situace by byla s perlí proměnnou $USER, ale to bys to, jak jsem říkal, musel psát v perlu (nebo raději něčem čitelnějším) celé.
    5.10.2009 11:38 saslik
    Rozbalit Rozbalit vše Re: sed - substituce promenou nefunguje

    Tipuju ze problem je v obsahu promenne SPEED. Prikaz pro sed se trextove sestavi a pokud je tam vyznamny znak, napriklad lomitko v "km/hour", tak to bude chybne. Pro ladeni takovych skriptu je dobre vzdy vypsat co se bude spoustet a pak to spustit, pak uvidis jestli se to sestavilo dobre nebo ne.

    Založit nové vlákno • Nahoru

    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.