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

    Mastodon (Wikipedie) - sociální síť, která není na prodej - byl vydán ve verzi 4.5. Přehled novinek s náhledy v oznámení na blogu.

    Ladislav Hagara | Komentářů: 0
    včera 23:55 | IT novinky

    Německo zvažuje, že zaplatí místním telekomunikačním operátorům včetně Deutsche Telekom, aby nahradili zařízení od čínské firmy Huawei. Náklady na výměnu by mohly přesáhnout dvě miliardy eur (bezmála 49 miliard Kč). Jeden scénář počítá s tím, že vláda na tento záměr použije prostředky určené na obranu či infrastrukturu.

    Ladislav Hagara | Komentářů: 0
    včera 18:00 | Komunita

    Po dvaceti letech skončil leader japonské SUMO (SUpport.MOzilla.org) komunity Marsf. Důvodem bylo nasazení sumobota, který nedodržuje nastavené postupy a hrubě zasahuje do překladů i archivů. Marsf zároveň zakázal použití svých příspěvků a dat k učení sumobota a AI a požádal o vyřazení svých dat ze všech učebních dat.

    karkar | Komentářů: 1
    včera 11:00 | IT novinky

    Úřad pro ochranu hospodářské soutěže zahajuje sektorové šetření v oblasti mobilních telekomunikačních služeb poskytovaných domácnostem v České republice. Z poznatků získaných na základě prvotní analýzy provedené ve spolupráci s Českým telekomunikačním úřadem (ČTÚ) ÚOHS zjistil, že vzájemné vztahy mezi operátory je zapotřebí detailněji prověřit kvůli možné nefunkčnosti některých aspektů konkurence na trzích, na nichž roste tržní podíl klíčových hráčů a naopak klesá význam nezávislých virtuálních operátorů.

    Ladislav Hagara | Komentářů: 9
    včera 10:55 | Humor

    Různé audity bezpečnostních systémů pařížského muzea Louvre odhalily závažné problémy v oblasti kybernetické bezpečnosti a tyto problémy přetrvávaly déle než deset let. Jeden z těchto auditů, který v roce 2014 provedla francouzská národní agentura pro kybernetickou bezpečnost, například ukázal, že heslo do kamerového systému muzea bylo „Louvre“. 😀

    Ladislav Hagara | Komentářů: 12
    včera 01:00 | Komunita

    Z upstreamu GNOME Mutter byl zcela odstraněn backend X11. GNOME 50 tedy poběží už pouze nad Waylandem. Aplikace pro X11 budou využívat XWayland.

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

    Byl publikován plán na odstranění XSLT z webových prohlížečů Chrome a Chromium. S odstraněním XSLT souhlasí také vývojáři Firefoxu a WebKit. Důvodem jsou bezpečnostní rizika a klesající využití v moderním webovém vývoji.

    Ladislav Hagara | Komentářů: 1
    5.11. 15:55 | Nová verze

    Desktopové prostředí LXQt (Lightweight Qt Desktop Environment, Wikipedie) vzniklé sloučením projektů Razor-qt a LXDE bylo vydáno ve verzi 2.3.0. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    5.11. 05:55 | IT novinky

    Organizace Open Container Initiative (OCI) (Wikipedie), projekt nadace Linux Foundation, vydala Runtime Specification 1.3 (pdf), tj. novou verzi specifikace kontejnerového běhového prostředí. Hlavní novinkou je podpora FreeBSD.

    Ladislav Hagara | Komentářů: 0
    4.11. 11:33 | IT novinky

    Nový open source router Turris Omnia NG je v prodeji. Aktuálně na Allegro, Alternetivo, Discomp, i4wifi a WiFiShop.

    Ladislav Hagara | Komentářů: 22
    Jaké řešení používáte k vývoji / práci?
     (35%)
     (48%)
     (18%)
     (17%)
     (22%)
     (15%)
     (21%)
     (16%)
     (16%)
    Celkem 320 hlasů
     Komentářů: 15, poslední 2.11. 08:25
    Rozcestník

    Dotaz: Nahrazení hodnoty v array

    5.3.2013 12:23 BLACK
    Nahrazení hodnoty v array
    Přečteno: 257×
    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.