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 13:33 | Pozvánky

Byly stanoveny termíny konferencí LinuxDays 2017 a OpenAlt 2017. Letošní LinuxDays proběhne o víkendu 7. a 8. října v Praze v Dejvicích v prostorách FIT ČVUT. Letošní OpenAlt proběhne o víkendu 4. a 5. listopadu na FIT VUT v Brně.

Ladislav Hagara | Komentářů: 0
dnes 11:11 | Komunita

Jiří Eischmann z desktopového týmu Red Hatu se v příspěvku Linuxový desktop: Co vám chybí na svém blogu ptá, co uživatele na Fedora Workstation a na linuxovém desktopu obecně trápí a co by desktopový tým mohl zlepšit. Pokud máte nějaké podněty, napište mu je do komentářů.

Ladislav Hagara | Komentářů: 27
dnes 03:33 | Nová verze

Byla vydána nová verze 0.25.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Z novinek lze zmínit například podporu DVB-T2. Další části mpv byly přelicencovány z GPLv2 nebo novější na LGPLv2.1 nebo novější (#2033).

Ladislav Hagara | Komentářů: 0
dnes 02:22 | Zajímavý projekt

Na Bundle Stars byla spuštěna akce Dollar Forever Bundle. Za 1 dolar lze získat 24 počítačových her bežících na platformě Steam také v Linuxu.

Ladislav Hagara | Komentářů: 1
včera 23:44 | Zajímavý software

Lychee je jedním z open source softwarů pro tvorbu webových fotoalb. Vyžadováno je PHP 5.5 nebo novější a MySQL. Ukázka na stránkách projektu. Zdrojové kódy jsou k dispozici na GitHubu pod open source licencí MIT [reddit].

Ladislav Hagara | Komentářů: 5
včera 22:22 | Zajímavý software

Společnosti Haivision a Wowza společně oznámily vznik SRT Alliance a otevření protokolu pro streamování videa SRT. Podrobnosti v FAQ. Zdrojové kódy SRT jsou k dispozici na GitHubu pod open source licencí LGPLv2.1.

Ladislav Hagara | Komentářů: 0
včera 12:33 | Humor

Byl vydán remake filmu Ghost in the Shell. Tentokrát v Bashi. Zhlédnout lze online na "ssh ghost@theshell.xyz" [Hacker News].

Ladislav Hagara | Komentářů: 16
23.4. 20:40 | Zajímavý článek

Lukáš Růžička v článku S Hydrogenem za lepší rytmus aneb bubeníkem snadno a rychle na MojeFedora.cz představuje automatického bubeníka s názvem Hydrogen (Wikipedie): Hydrogen je velmi vydařený program, který rozhodně nesmí chybět ve výbavě žádného linuxového muzikanta. Umožňuje nejen vytváření jednoduchých bicích doprovodů, ale také sofistikované programování bicích a perkusí, jehož výsledek se naprosto vyrovná drahým

… více »
Ladislav Hagara | Komentářů: 16
23.4. 13:55 | Zajímavý projekt

UPSat (Twitter) je první open source nanodružice (CubeSat). Jedná se o společný projekt nadace Libre Space Foundation a University of Patras. Repozitáře projektu jsou k dispozici na GitHubu. Pod Libre Space Foundation patří také projekt SatNOGS (zprávička), projekt globální sítě open source pozemních satelitních stanic, vítězný projekt soutěže The Hackaday Prize 2014. UPSat je součástí mise QB50 (Twitter). ID UPSatu je GR02. GPS přijímač na UPSatu je od české společnosti SkyFox Labs. Součástí mise QB50 je i česká nanodružice VZLUSAT-1 s ID CZ02.

Ladislav Hagara | Komentářů: 5
21.4. 15:00 | Komunita

V diskusním listu Thunderbird planning vývojáři poštovního klienta Thunderbird řeší, zda by nebylo možné budoucí Thunderbird postavit nad webovými technologiemi, tj. nad Electronem, stejně jako například Nylas Mail. Gecko, nad kterým je Thunderbird postaven, se má hodně změnit. V plánu je odstranění vlastností, které Firefox už nepotřebuje, ale Thunderbird je na nich závislý [Hacker News, reddit].

Ladislav Hagara | Komentářů: 100
Chystáte se pořídit CPU AMD Ryzen?
 (4%)
 (34%)
 (0%)
 (7%)
 (45%)
 (9%)
Celkem 295 hlasů
 Komentářů: 32, poslední včera 12:24
    Rozcestník

    Dotaz: porovnani array v BASHi

    belisarivs avatar 3.9.2008 15:16 belisarivs | skóre: 22 | blog: Psychobláboly
    porovnani array v BASHi
    Přečteno: 260×
    Zdravim.

    Potrebuju poradit.

    Ucim se s Bashem a potreboval bych jednu vec.

    Chci napsat skript, ktery by nakouknul do adresare "&patch", pak by nakouknul do adresare "$source1" a nakonec do adresare "$source2".

    Pak by podle nazvu bez pripony vykopiroval vsechny soubory, ktere se nachazeji v adresarich "$source1" a zaroven i "patch", ale ne v "source2".

    Zmatlal jsem neco takovehoto. Nevypada to moc pekne, ale snad se v tom bude dat vyznat.
    count_patch=1
    for i in $patch/*.patch
    do
      if [ -f "$i" ]; then
    	patch[$count_patch]=$(basename "$i" .patch)
    	echo ${patch[$count_patch]}
    	((count_patch+=1))
        amount_patch=$count_patch
      fi
    done
    echo $amount_patch
    
    count_source2=1
    for i in $po_kde4_new/*.1
    do
      if [ -f "$i" ]; then
    	source2[$count_source2]=$(basename "$i" .1)
    	echo ${source2[$count_source2]}
    	((count_source2+=1))
        amount_source2=$count_source2
      fi
    done
    echo $amount_source2
    
    count_source1=1
    for i in $po_kde3_new/*.1
    do
      if [ -f "$i" ]; then
    	source1[$count_source1]=$(basename "$i" .1)
    	echo ${source1[$count_source1]}
    	((count_source1+=1))
        amount_source1=$count_source1
      fi
    done
    
    while [ $amount_patch -gt 0 ]
    do
      amount_source1=$count_source1
      echo $amount_source1
      while [ $amount_source1 -gt 0 ]
      do
        amount_source1=$count_source1
        if [[ $(echo ${patch[$count_patch]}) = $(echo ${source1[$count_source1]}) ]]; then
          amount_source2=$count_source2
          while [ $amount_source2 -gt 0 ]
          do
    	if [[ $(echo ${source1[$count_source1]}) != $(echo ${source2[$count_source2]}) ]]; then
    	cp ${source1[$count_source1]}.1 ${patch[$count_patch]}.patch $skladiste    
    	fi
    	((amount_source2-=1))
          done 
        fi
        ((amount_source1-=1))
      done
      ((amount_patch-=1))
    done
    Je tam dost chyb.

    Mimo jine nevim, jak zajistit aby byla dodrzena podminka, ze soubor o stejnem nazvu nesmi byt v "source2". To co tam mam je vylozene blbe.

    Navic mi pri porovnani tech array vraci obe polozky prazdny retezec.

    Nemuzete mi poradit, jak to zprovoznit? Pres array to byt nemusi. Jde mi spis o funkcnost a nic lepsiho me nenapadlo.

    Dekuju za jakoukoliv radu.
    IRC is just multiplayer notepad.

    Odpovědi

    3.9.2008 16:02 Andrej Herceg | skóre: 43
    Rozbalit Rozbalit vše Re: porovnani array v BASHi
    Neviem, či je zrovna Bash na niečo takéto najlepší, ale za istých okolností by mohlo fungovať niečo takéto:
    #!/bin/sh
    
    PATCH=./patch
    SRC1=./src1
    SRC2=./src2
    
    IFS=$'\n'
    
    patchs=( $(find "$PATCH" -type f -name "*.patch" -print0 | xargs -0 -n 1 -i basename '{}' .patch ) )
    srcs1=( $(find "$SRC1" -type f -name "*.c" -print0 | xargs -0 -n 1 -i basename '{}' .c ) )
    srcs2=( $(find "$SRC2" -type f -name "*.c" -print0 | xargs -0 -n 1 -i basename '{}' .c ) )
    
    # echo "${#srcs1[*]}"
    # echo "${srcs1[*]}"
    
    # subory, ktore su v SRC1 a aj v SRC2
    tmp1=( $(echo -e "${srcs1[*]}\n${srcs2[*]}" | sort | uniq -d) )
    
    # echo "${#tmp1[*]}"
    # echo "${tmp1[*]}"
    
    # subory, ktore su v SRC1, ale nie su v SRC2
    tmp2=( $(echo -e "${srcs1[*]}\n${tmp1[*]}\n${tmp1[*]}" | sort | uniq -u) )
    
    # echo "${#tmp2[*]}"
    # echo "${tmp2[*]}"
    
    # subory, ktore su v PATCH a SRC1
    tmp3=( $(echo -e "${patchs[*]}\n${tmp2[*]}" | sort | uniq -d) )
    
    echo "${#tmp3[*]}"
    echo "${tmp3[*]}"
    
    belisarivs avatar 3.9.2008 19:40 belisarivs | skóre: 22 | blog: Psychobláboly
    Rozbalit Rozbalit vše Re: porovnani array v BASHi
    To vypada zajimave. Vyzkousim.

    Jenom jedna vec. Ty tri podminky musi platit zaroven.

    Proste schci ze src1 vykopcit vse, co je i v patch a neni v src2 a z patch chci vykopcit do toho sameho adresare vse, co je v src1 a neni v src2.

    Ale to uz bude asi jenom varianta na to co jsi napsal.

    Dekuju moc.
    IRC is just multiplayer notepad.
    3.9.2008 19:45 Andrej Herceg | skóre: 43
    Rozbalit Rozbalit vše Re: porovnani array v BASHi
    Presne také súbory by mal vypísať ten príkaz echo "${tmp3[*]}" (teda len názov súboru, ale nie je problém tomu pridať adresár a príponu).

    Ja som mal skôr na mysli to, že ak tie názvy súborov budú obsahovať znak "\n", tak to nebude fungovať (a asi si to neporadí ani s veľmi veľkým počtom súborov).
    3.9.2008 19:58 Andrej Herceg | skóre: 43
    Rozbalit Rozbalit vše Re: porovnani array v BASHi
    Upravený výpis by mohol vyzerať takto:
    for i in ${tmp3[*]}
    do
            echo "$PATCH/$i.patch"
            echo "$SRC1/$i.c"
    done
    
    belisarivs avatar 6.9.2008 20:48 belisarivs | skóre: 22 | blog: Psychobláboly
    Rozbalit Rozbalit vše Re: porovnani array v BASHi
    Dekuju moc. Funguje to.
    IRC is just multiplayer notepad.
    3.9.2008 23:37 vencas | skóre: 32
    Rozbalit Rozbalit vše Re: porovnani array v BASHi
    Doporučuju se podívat na základní literaturu; Jamie Zawinski řeší něco podbného na stranách 167--169 ;-)
    3.9.2008 23:54 Andrej Herceg | skóre: 43
    Rozbalit Rozbalit vše Re: porovnani array v BASHi
    To je tá časť, kde namiesto toho, aby sa snažil pochopiť, ako to treba urobiť správne skúša náhodné možnosti až dovtedy, kým to začne fungovať? :)
    belisarivs avatar 4.9.2008 10:45 belisarivs | skóre: 22 | blog: Psychobláboly
    Rozbalit Rozbalit vše Re: porovnani array v BASHi
    To ma byt nejaka parodie nebo co to je?
    IRC is just multiplayer notepad.

    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.