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

    Byla vydána nová verze 3.2.8 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP je již k dispozici také na Flathubu.

    Ladislav Hagara | Komentářů: 2
    včera 16:55 | Nová verze

    Projekt openSUSE dnes, 3. listopadu 2026, oficiálně vydal openSUSE Leap 16.1, novou verzi své stabilní linuxové distribuce. Novinkou je také Immutable Mode, který nahrazuje dosavadní samostatnou distribuci openSUSE Leap Micro. Podrobnosti o novém vydání najdete v oficiálním oznámení nebo v českém překladu oznámení. Instalační obrazy jsou již dostupné na get.opensuse.org. Vydání společně oslavíme v pátek ve virtuálním baru a na … více »

    lkocman | Komentářů: 1
    včera 16:00 | Nová verze

    Bylo oznámeno vydání Fedora Linuxu 45. Ve finální verzi vychází šest oficiálních edic: Fedora Workstation a Fedora KDE Plasma Desktop pro desktopové, Fedora Server pro serverové, Fedora Cloud pro cloudové nasazení, Fedora CoreOS pro ty, kteří preferují neměnné systémy a Fedora IoT pro internet věcí. Vedle nich jsou k dispozici také další atomické desktopy, spiny a laby. Podrobný přehled novinek v samostatných článcích na stránkách

    … více »
    Ladislav Hagara | Komentářů: 1
    včera 15:44 | Zajímavý článek

    Vědci z MIT CSAIL představili koncept 'weight-space programming' a názorně předvedli, že pokročilé jazykové modely SI dokážou přímo číst a upravovat váhy neuronových sítí. Studie ukazuje, že modely nejen dokážou identifikovat účel sítí z pouhého nahlédnutí do jejich číselných vah, ale mohou i cíleně opravovat chyby a nedostatky, například GPT-6 Astra se změnou pouhých 0,016% vah open-weight modelu Qwen3.5-0.8B podařilo odstranit

    … více »
    👻 | Komentářů: 4
    včera 14:00 | Komunita

    Organizátoři komunitního setkání nejen českých a slovenských správců sítí CSNOG 2027, které se uskuteční 20. a 21. ledna na půdě zlínské univerzity Tomáše Bati, oznámili prodloužení termínu pro zasílání abstraktů do programu akce. Zájemci se mohou hlásit prostřednictvím webu setkání do úterý 10. listopadu. Programová komise uvítá příspěvky věnované nejen správě sítí, ale také legislativě a regulaci nebo síťařským aktivitám studentů a pedagogů.

    VSladek | Komentářů: 1
    včera 13:55 | IT novinky

    Bylo spuštěno předobjednávání zařízení Flipper One s Linuxem. Za 20 dolarů si lze koupit kupón a zajistit si tím speciální cenu 379 dolarů po spuštění kampaně na Kickstarteru.

    Ladislav Hagara | Komentářů: 0
    včera 12:44 | Nová verze

    Tor Browser, tj. fork webového prohlížeče Mozilla Firefox s integrovaným klientem sítě Tor přednastavený tak, aby přes tuto síť bezpečně komunikoval, byl vydán ve verzi 16.0. Postaven je na Firefoxu ESR 153. Vydána byla také nová verze 7.16 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. S Tor Browserem 16.0.

    Ladislav Hagara | Komentářů: 1
    včera 04:00 | Nová verze

    FreeTube, desktopový klient pro YouTube využívající lokální API, byl vydán ve verzi 0.26.0. Toto velké opravné vydání mj. vrací částečnou podporu živých přenosů nebo přepracovává zobrazování titulků a obecně nastavení videa v přehrávači – FreeTube umožňuje např. přehrávat video s větším zrychlením.

    ʚĭɞ 🍉 | Komentářů: 1
    včera 03:55 | Humor

    Další vlna kyberútoků zasáhla chladicí zařízení supermarketů v sedmi evropských zemích, Belgii, Lucembursku, Švédsku, Nizozemsku, Irsku, Estonsku a Finsku. Mrazáky se v některých prodejnách opět 'proměnily v trouby' a zahřály až na 50°C, což pochopitelně vedlo ke znehodnocení uskladněných potravin. Útoky navazují na podobný incident ve Francii z první poloviny října letošního roku, pachatel stále není znám.

    👻 | Komentářů: 9
    2.11. 17:52 | Zajímavý projekt
    WorldTUI je experimentální LLM o 360 milionech parametrů, který napodobuje terminál. Podle stisknutých kláves se snaží předpovídat změny na obrazovce a zvládá tak vyonávat rozličné příkazy, například Vim, tmux i jednoduchou hru Snake. Nejedná se o skutečný příkazový řádek, jeho 'soubory' i příkazy jsou pouze simulované a model může samozřejmě různě chybovat. WorldTUI vychází z jazykového modelu Qwen2.5-Coder-0.5B, který autor … více »
    👻 | Komentářů: 2
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (20%)
     (30%)
     (9%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2971 hlasů
     Komentářů: 34, poslední 26.10. 08:24
    Rozcestník

    Dotaz: Ulozeni a cteni z pole

    29.7.2015 16:40 Lucius
    Ulozeni a cteni z pole
    Přečteno: 724×
    Ahoj, resim takovy problem, potreboval bych ulozit do pole zaznamy ze souboru
    array=($(cat mujsoubor.txt))  <- ve skutecnosti je tam slozitejsi sed a awk, ktery z procesuje soubor a udela vystup viz nize

    mujsoubor.txt radek;654645 jana;13221 andrea;55465 ...

    ted bych potreboval jednotlive radky ulozit do promennych, zkousel jsem
      while IFS=';' read jmeno cislo; do
                    echo $jmeno
                    echo $cislo
            done < ${array[*]}
    Ale bohuzel takto mi to nefunguje, poradite? Zkousim v bashi. Diky

    Odpovědi

    29.7.2015 22:02 NN
    Rozbalit Rozbalit vše Re: Ulozeni a cteni z pole
    Ja vidim nekolik problemu. Ten cyklus nedava smysl protoze nacitas radky do stale stejnych promennych, tzn. na konci budes mit ulozeny jen posledni radek(najedna se o nacitani do pole array+=('foo')..). Oddelovac IFS je sice dobry napad, ale neni jasne ktere hodnoty chces spojovat. Otazky:
    mujsoubor.txt radek;654645 jana;13221 andrea;55465
    Retezec 'mujsoubor.txt' se nachazi v souboru a je potreba jej vynechat? Soubor obsahuje jeden dlouhy retez nebo radky? Je treba spojit 'radek' a 654645, nebo 654645 a 'jana'? K cemu je pak retezec 'radek'?

    Nezname format vstupniho souboru, ani vystupniho, je mozne, ze cele reseni lze nafromatovat rovnou ze vstupniho souboru, bez zbytecnych cyklu. Konecne pokud se jedna o domaci ulohu, tak ta sem nepatri vubec.
    30.7.2015 14:08 Lucius
    Rozbalit Rozbalit vše Re: Ulozeni a cteni z pole
    ted jsem to spatne napsal, soubor je ve skutecnosti takoveho tvaru:
    mujsoubor.txt 
    
    radek;654645 
    jana;13221 
    andrea;55465
    Muj cil je tento seznam projet a nacist si pokazde prvni promennou=radek a druhou=654654, atd, dokud jsou tam radky. Omlouvam se za zmateni
    30.7.2015 17:10 NN
    Rozbalit Rozbalit vše Re: Ulozeni a cteni z pole
    No a co ten 'mujsoubor.txt' a prazdny radek, to se ma vynechat? Btw. to je ten soubor, ktery jsi nacpal do promenne array?

    No idealni by bylo prvni dva radky odstrihnout(sed) a pak to pres tvuj cyklus nacist do pole.
    30.7.2015 17:30 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: Ulozeni a cteni z pole
    Vyměň ";" za "=", ulož to do mujsoubor.sh a pak to spusť
    . mujsoubor.sh
    Ta tečka vpředu není překlep, ale příkaz.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    29.7.2015 22:26 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: Ulozeni a cteni z pole
    Možná to chce jen drobnou úpravu:
    cat mujsoubor.txt |
        while IFS=';' read cislo jmeno; do
            echo $jmeno
            echo $cislo
        done
    ale stejně by to v AWK bylo rychlejší a pohodlnější:
    cat mujsoubor.txt |
        awk 'BEGIN {RS=";"} {print $2, $1}'
    Ovšem cpát to do pole je nesmysl. Máš k tomu nějaký závažný důvod?
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    1.8.2015 03:32 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: Ulozeni a cteni z pole

    Tohle by měla být povinná četba, klidně místo Lojzy Jiráska. ;-)

    1.8.2015 03:38 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: Ulozeni a cteni z pole
    Přečti si ještě jednou původní dotaz a pak mudruj. Místo "cat mujsoubor.txt" tam má výstup z jiného programu.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    1.8.2015 09:50 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: Ulozeni a cteni z pole

    Ne, já budu napřed mudrovat, protože pipeline začínající na cat jednoho souboru je prostě špatný příklad, celkem bez ohledu na okolnosti. Povaluje se na webu v nesčetných obměnách a přijde mi zbytečné přidávat další. Jak si to tazatel upraví, aby mu to četlo pipe z jiného programu, to už je jeho věc.

    1.8.2015 14:51 nobody
    Rozbalit Rozbalit vše Re: Ulozeni a cteni z pole
    nejspis te chtel navest na :
    <- ve skutecnosti je tam slozitejsi sed a awk, ktery z procesuje soubor a udela vystup viz nize
    2.8.2015 00:15 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: Ulozeni a cteni z pole

    Děkuji, ale dobře jsem rozuměl, co tím myslel. Výsledkem ovšem je, že se na webu povalují zase další dva špatné příklady použití cat (který má, pravda, představovat „něco jiného“). Ať tak nebo tak, ty příklady jsou prostě špatné. Když už ne kvůli procesu navíc, tak třeba kvůli subshellu. Pro ilustraci je nejlepší třeba tohle:

    cat /etc/passwd | readarray -t pole_na_hovno
    readarray -t pole_s_daty < /etc/passwd
    

    První pole bude prázdné (protože takhle pipe prostě funguje, forknutý shell nemůže ovlivnit proměnné v tom původním), zatímco to druhé bude definované v „hlavním“ shellu, jak by člověk čekal. Při čtení dat do pole je cat jednoho souboru a následný pipe v podstatě zdrojem chyb číslo jedna. Když nahradíme cat za něco jiného, nijak to nepomůže. Tentýž problém tam bude pořád. Snad jediný případ, kdy cat jednoho souboru dává smysl, je něco takového:

    { sed 's/\(^[^:]\+\):/another\1:/' /etc/passwd; cat /etc/passwd; } | další | zpracování
    

    Tohle^^^ je samozřejmě ptákovina, ale umím si představit, že by to s drobnou obměnou mohlo dělat něco smysluplného. Možná je ale přehlednější tohle:

    cat <(sed 's/\(^[^:]\+\):/another\1:/' /etc/passwd) /etc/passwd | další | zpracování
    

    A to už není cat jednoho souboru, takže to je celkem OK. První možnost může být o něco efektivnější, protože výstup ze sedu nemusí přežvýkat cat. Pokud ovšem cat i shell používají v tomto případě splice(), je to nakonec jedno, co do efektivity.

    1.8.2015 03:00 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: Ulozeni a cteni z pole

    První a nejsnazší možnost je tohle:

    while read line; do
        IFS=';' read jmeno cislo <<<"${line}"
        echo "Jméno: ${jmeno}"
        echo "Číslo: ${cislo}"
    done < mujsoubor.txt
    

    Pokud chceš experimentovat s polem a načíst si řádky napřed do pole, to je samozřejmě taky možné:

    readarray -t lines < mujsoubor.txt
    for line in "${lines[@]}"; do
        IFS=';' read jmeno cislo <<<"${line}"
        echo "Jméno: ${jmeno}"
        echo "Číslo: ${cislo}"
    done
    

    Pro úplnost dodávám, že vstupní soubor vypadá takto…

    radek;654645 
    jana;13221 
    andrea;55465
    

    …a výstup z tohoto „parseru“ vypadá v obou případech takto:

    Jméno: radek
    Číslo: 654645
    Jméno: jana
    Číslo: 13221
    Jméno: andrea
    Číslo: 55465
    

    Všechny výše uvedené parametry jsou popsané v man bash; stačí si najít kapitolu zvanou Shell Builtin Commands, která je tam někde ke konci.

    Jo a mimochodem, pole přináší jistý bonus navíc v podobě indexů, které můžeš použít třeba pro následující trik, chceš-li:

    readarray -t lines < mujsoubor.txt
    echo "Počet položek adresáře: ${#lines[@]}"
    for index in "${!lines[@]}"; do
        IFS=';' read jmeno cislo <<<"${lines[index]}"
        echo "$((index + 1)). záznam: Jméno: ${jmeno} Číslo: ${cislo}"
    done
    
    Výstup z posledního skriptu bude pak následující:
    Počet položek adresáře: 3
    1. záznam: Jméno: radek Číslo: 654645 
    2. záznam: Jméno: jana Číslo: 13221 
    3. záznam: Jméno: andrea Číslo: 55465
    

    Z výše uvedeného už snad nebude problém nějaký vhodný parsovací skript vymyslet. :-)

    1.8.2015 03:05 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: Ulozeni a cteni z pole

    Aha! Příliš jsem se nechal unést iterací přes pole a parsováním řádků za každou cenu. On ale read sám od sebe umí všechno potřebné, takže ještě kratší (se stejným výstupem) bude tohle:

    while IFS=';' read jmeno cislo; do
      echo "Jméno: ${jmeno}"
      echo "Číslo: ${cislo}"
    done < mujsoubor.txt
    

    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.