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í
×
    26.12. 18:44 | Komunita

    Od soboty do úterý probíhá v Hamburku konference 39C3 (Chaos Communication Congress) věnovaná také počítačové bezpečnosti nebo hardwaru. Program (jiná verze) slibuje řadu zajímavých přednášek. Streamy a záznamy budou k dispozici na media.ccc.de.

    Ladislav Hagara | Komentářů: 0
    26.12. 13:22 | Zajímavý software

    Byl představen nový Xserver Phoenix, kompletně od nuly vyvíjený v programovacím jazyce Zig. Projekt Phoenix si klade za cíl být moderní alternativou k X.Org serveru.

    🇨🇽 | Komentářů: 7
    26.12. 13:11 | Nová verze

    XLibre Xserver byl 21. prosince vydán ve verzi 25.1.0, 'winter solstice release'. Od založení tohoto forku X.Org serveru se jedná o vůbec první novou minor verzi (inkrementovalo se to druhé číslo v číselném kódu verze).

    🇨🇽 | Komentářů: 0
    26.12. 03:33 | Nová verze

    Wayback byl vydán ve verzi 0.3. Wayback je "tak akorát Waylandu, aby fungoval Xwayland". Jedná se o kompatibilní vrstvu umožňující běh plnohodnotných X11 desktopových prostředí s využitím komponent z Waylandu. Cílem je nakonec nahradit klasický server X.Org, a tím snížit zátěž údržby aplikací X11.

    Ladislav Hagara | Komentářů: 0
    25.12. 14:44 | Nová verze

    Byla vydána verze 4.0.0 programovacího jazyka Ruby (Wikipedie). S Ruby Box a ZJIT. Ruby lze vyzkoušet na webové stránce TryRuby. U příležitosti 30. narozenin, první veřejná verze Ruby 0.95 byla oznámena 21. prosince 1995, proběhl redesign webových stránek.

    Ladislav Hagara | Komentářů: 0
    24.12. 02:11 | Komunita

    Všem čtenářkám a čtenářům AbcLinuxu krásné Vánoce.

    Ladislav Hagara | Komentářů: 30
    24.12. 02:00 | Nová verze

    Byla vydána nová verze 7.0 linuxové distribuce Parrot OS (Wikipedie). S kódovým názvem Echo. Jedná se o linuxovou distribuci založenou na Debianu a zaměřenou na penetrační testování, digitální forenzní analýzu, reverzní inženýrství, hacking, anonymitu nebo kryptografii. Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    23.12. 18:33 | Nová verze

    Vývojáři postmarketOS vydali verzi 25.12 tohoto před osmi lety představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME Shell on Mobile, KDE Plasma Mobile, Phosh a Sxmo.

    Ladislav Hagara | Komentářů: 0
    23.12. 13:55 | Nová verze

    Byla vydána nová verze 0.41.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 6.1 nebo novější a také libplacebo 6.338.2 nebo novější.

    Ladislav Hagara | Komentářů: 0
    23.12. 12:44 | Nová verze

    Byla vydána nová verze 5.5 (novinky) skriptovacího jazyka Lua (Wikipedie). Po pěti a půl letech od vydání verze 5.4.

    Ladislav Hagara | Komentářů: 0
    Kdo vám letos nadělí dárek?
     (35%)
     (1%)
     (19%)
     (1%)
     (1%)
     (1%)
     (13%)
     (13%)
     (13%)
    Celkem 134 hlasů
     Komentářů: 18, poslední 24.12. 15:29
    Rozcestník

    Dotaz: Nahrazení hodnoty v array

    5.3.2013 12:23 BLACK
    Nahrazení hodnoty v array
    Přečteno: 281×
    Zdravím všechny, snažím se vyřešit jeden pro mne celkem neřešitelný probém. Mám definované pole
    ARR=(
    "xxx" "xxxxxxxxxxxxxx"
    "xxx" "xxxxxxxxxxxxxx"
    "xxx" "xxxxxxxxxxxxxx"
    "xxx" "ssssssssssssss"
    "xxx" "xxxxxxxxxxxxxx"
    "xxx" "xxxxxxxxxxxxxx"
    )
    A potřebuji nahradit v tomto poli hodnotu ssssssssssssss za xxxxxxxxxxxxxx. Neporadil by někdo jak to provéct v bash/shell? Děkuji

    Odpovědi

    5.3.2013 14:28 GiGo
    Rozbalit Rozbalit vše Re: Nahrazení hodnoty v array
    ARR[7]=xxxxxxxxxxxxxx
    5.3.2013 16:44 Kit
    Rozbalit Rozbalit vše Re: Nahrazení hodnoty v array
    V shellu se dobře dělá se soubory, ale práce s polem je v něm kostrbatá. Skutečně tu změnu potřebuješ dělat na poli?
    5.3.2013 19:00 j
    Rozbalit Rozbalit vše Re: Nahrazení hodnoty v array
    Chjo, co tak zkusit google? 10s ...
    #!/bin/bash
    
    ARR=(
    "xxx" "xxxxxxxxxxxxxx"
    "xxx" "xxxxxxxxxxxxxx"
    "xxx" "xxxxxxxxxxxxxx"
    "xxx" "ssssssssssssss"
    "xxx" "xxxxxxxxxxxxxx"
    "xxx" "xxxxxxxxxxxxxx"
    )
    
    x="ssssssssssssss"
    
    len=${#ARR[@]}
    
    for (( i=0; i< len; i++ ))
    do
        if [ "${ARR[i]}" == "$x" ]
        then
            ARR[i]="kkk"
            echo ${ARR[i]}
        fi
    done
    
    5.3.2013 21:02 bashoid
    Rozbalit Rozbalit vše Re: Nahrazení hodnoty v array
    Proč to dělat jednoduše, když máme i bash:

    ARR=${ARR[@]/ssssssssssssss/xxxxxxxxxxxxxx}
    5.3.2013 21:46 bashoid
    Rozbalit Rozbalit vše Re: Nahrazení hodnoty v array
    Pardon, drobný nedoraz, jak říkám, je to velmi jednoduché:
    ARR=("${ARR[@]/ssssssssssssss/xxxxxxxxxxxxxx}")
    5.3.2013 21:47 Patrik Uhrak | skóre: 31 | blog: pato
    Rozbalit Rozbalit vše Re: Nahrazení hodnoty v array

    To nie je spravne riesenie, spravne je to nasledovne:

    ARR=( "${ARR[@]/ssssssssssssss/xxxxxxxxxxxxxx}" )

    alebo pre viac ako prvy vyskyt daneho retazca sssssssssssss je to nasledovne:

    ARR=( "${ARR[@]//ssssssssssssss/xxxxxxxxxxxxxx}" )
    5.3.2013 22:17 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Nahrazení hodnoty v array
    Je otázka, jestli děláte opravdu to, co je zadáno.

    Když někdo řekne že chce v poli změnit hodnotu ssss na xxxx, první mne napadne, že chce v těch prvcích pole, které mají hodnotu rovnu ssss nahradit jejich tuto hodnotu hodnotou yyyy.

    Až když jste navrhl vaše řešení mne napadlo, že by v zadání mohlo jít o fulltextové nahrazování, hodnoty ve smyslu řetězce, nikoliv hodnoty prvku pole.

    Takže záleží na tom, co je cílem. Abychom při nahrazování ryb kočkami nedostali velkočku.

    Osobně tipuji že podle toho jak je to zadáno se mají opravdu nahrazovat ryby kočkami, ne velryby velkočkami.
    5.3.2013 23:02 meta
    Rozbalit Rozbalit vše Re: Nahrazení hodnoty v array
    V zadání je dokonce v tomto poli. Myslím, že literu zadání doslovně splnil i první humorista.
    5.3.2013 23:03 Patrik Uhrak | skóre: 31 | blog: pato
    Rozbalit Rozbalit vše Re: Nahrazení hodnoty v array

    To je dobra poznamka a popravde dost dolezita, kedze je aj mojim nazorom, ze nahradzujeme hodnoty jednotlivych clenov pola. Ale co som opravil riesenie vyssie, je stale len nahradzovanie retazcov, kedy nahradenie retazca sss retazcom xxx plati aj pre aaasss a taktiez aj pre aaasssbbbssssss a podobne.

    Riesenim pre nahradzovanie hodnot clenov pola by mohlo byt aj nasledovne:

    patrik@thinkpad:~$ echo "${pole[@]}"
    aaaccc bbb ccc dddcccddd ccc
    patrik@thinkpad:~$ once=0; value1='ccc'; value2='xxx'; num=0; for item in "${pole[@]}"; do [[ "$item" == "$value1" ]] && { pole[$num]="$value2"; [[ "$once" -eq 0 ]] && break; }; (( num++ )); done
    patrik@thinkpad:~$ echo "${pole[@]}" 
    aaaccc bbb xxx dddcccddd ccc
    5.3.2013 23:11 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Nahrazení hodnoty v array
    Osobně v momentě, kdy stejně z technických důvodů potřebuji index, rezignuji na cool for item in array a udělám prostý for cyklus přes prvky toho pole indexované tím indexem jako je uvedeno v příspěvku č. 3 od j, připadá mi to i konzistentnější ve smyslu že nahrazuji s jistotou přesně to, co jsme před tím porovnal a našel shodu a tedy nahradit chtěl.

    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.