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

Glen MacArthur vydal verzi 2018.4.2 na Debianu založené linuxové distribuce optimalizované pro tvůrce audio a video obsahu AV Linux (Wikipedie). Podrobnosti v oznámení o vydání a v stotřicetistránkovém manuálu (pdf).

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

Byla vydána nová stabilní verze 1.15 (1.15.1147.36) webového prohlížeče Vivaldi (Wikipedie). Z novinek lze zdůraznit možnost nastavení vlastního pozadí okna, přístup k záložkám z hlavního menu, lepší ovládatelnost v režimu celé obrazovky nebo vyřešení problémů se zvukem v HTML5. Nejnovější Vivaldi je postaveno na Chromiu 65.0.3325.183.

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

Node.js Foundation, oficiální projekt konsorcia Linux Foundation, oznámila vydání verze 10.0.0 otevřeného multiplatformního prostředí pro vývoj a běh síťových aplikací napsaných v JavaScriptu Node.js (Wikipedie). Verze 10 se v říjnu stane novou aktivní LTS verzí. Podpora je plánována do dubna 2021.

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

Neal Cardwell ze společnosti Google oznámil zveřejnění verze 2.0 nástroje pro testování síťového stacku packetdrill. Jde o souhrnné vydání změn z interního vývoje od roku 2013.

Michal Kubeček | Komentářů: 0
včera 13:22 | Zajímavý software

Microsoft na svém blogu oznámil, že správce knihoven pro C++ Vcpkg (VC++ Packaging Tool) lze nově používat také na Linuxu a macOS. Aktuálně je pro Linux k dispozici více než 350 knihoven [reddit].

Ladislav Hagara | Komentářů: 1
včera 12:44 | Komunita

Byly zveřejněny exploity na Nintendo Switch a platformu Tegra X1: Fusée Gelée a ShofEL2. Jejich zneužití nelze zabránit softwarovou aktualizací. Na druhou stranu exploity umožní na Nintendo Switch snadno a rychle nainstalovat Linux, viz. ukázka na YouTube. Jenom je potřeba sáhnout na hardware.

Ladislav Hagara | Komentářů: 0
včera 00:55 | Nová verze

Byla vydána verze 2.12.0 QEMU (Wikipedie). Přispělo 204 vývojářů. Provedeno bylo více než 2 700 commitů. Přehled úprav a nových vlastností v seznamu změn. Řešeny jsou také bezpečnostní chyby Meltdown a Spectre.

Ladislav Hagara | Komentářů: 7
včera 00:33 | Komunita

Google zveřejnil seznam 1 264 studentů přijatých do letošního Google Summer of Code. Přehled projektů, studentů, 212 organizací a mentorů je k dispozici na stránkách GSoC.

Ladislav Hagara | Komentářů: 0
24.4. 23:55 | Nová verze

Oracle vydal verzi 1.0 univerzálního virtuálního stroje GraalVM, který umožňuje běh programů napsaných v jazycích založených na JVM, JavaScript, LLVM bitcode a experimentálně Ruby, R a Python.

razor | Komentářů: 1
24.4. 01:22 | Zajímavý článek

Julia Evans pomocí svých kreslených obrázků proniká do Linuxu a informačních technologií. Vedle ucelených zinů publikuje také jednotlivé kreslené obrázky (RSS).

Ladislav Hagara | Komentářů: 5
Používáte na serverech port knocking?
 (3%)
 (7%)
 (46%)
 (26%)
 (18%)
Celkem 383 hlasů
 Komentářů: 29, poslední 5.4. 12:25
    Rozcestník

    Dotaz: Nahrazení hodnoty v array

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