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 15:33 | Humor

    PimpMyGRC upravuje vzhled toolkitu GNU Radio a přidává alternativní barevná témata. Primárním cílem autora bylo pouze vytvořit tmavé prostředí vhodné pro noční práci, nicméně k dispozici je nakonec celá škála barevných schémat včetně možností různých animací a vizuálních efektů (plameny, matrix, bubliny...), které nepochybně posunou uživatelský zážitek na zcela jinou úroveň. Témata jsou skripty v jazyce Python, které nahrazují

    … více »
    NUKE GAZA! 🎆 | Komentářů: 1
    dnes 14:33 | Nová verze Ladislav Hagara | Komentářů: 0
    dnes 12:33 | Zajímavý projekt

    FRANK OS je open-source operační systém pro mikrokontrolér RP2350 (s FRANK M2 board) postavený na FreeRTOS, který přetváří tento levný čip na plně funkční počítač s desktopovým uživatelským rozhraním ve stylu Windows 95 se správcem oken, terminálem, prohlížečem souborů a knihovnou aplikací, ovládaný PS/2 myší a klávesnicí, s DVI video výstupem. Otázkou zůstává, zda by 520 KB SRAM stačilo každému 😅.

    NUKE GAZA! 🎆 | Komentářů: 2
    včera 22:55 | IT novinky

    Administrativa amerického prezidenta Donalda Trumpa by měla dostat zhruba deset miliard dolarů (asi 214 miliard Kč) za zprostředkování dohody o převzetí kontroly nad aktivitami sociální sítě TikTok ve Spojených státech.

    Ladislav Hagara | Komentářů: 1
    včera 21:33 | Nová verze

    Projekt Debian aktualizoval obrazy stabilní větve „Trixie“ (13.4). Shrnuje opravy za poslední dva měsíce, 111 aktualizovaných balíčků a 67 bezpečnostních hlášení. Opravy se týkají mj. chyb v glibc nebo webovém serveru Apache.

    |🇵🇸 | Komentářů: 2
    včera 13:00 | Humor

    Agent umělé inteligence Claude Opus ignoroval uživatelovu odpověď 'ne' na dotaz, zda má implementovat změny kódu, a přesto se pokusil změny provést. Agent si odpověď 'ne' vysvětlil následovně: Uživatel na mou otázku 'Mám to implementovat?' odpověděl 'ne' - ale když se podívám na kontext, myslím, že tím 'ne' odpovídá na to, abych žádal o svolení, tedy myslí 'prostě to udělej, přestaň se ptát'.

    NUKE GAZA! 🎆 | Komentářů: 11
    včera 00:44 | IT novinky

    Po 8. květnu 2026 už na Instagramu nebudou podporované zprávy opatřené koncovým šifrováním. V chatech, kterých se bude změna týkat, se objeví pokyny o tom, jak si média nebo zprávy z nich stáhnout, pokud si je chcete ponechat.

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

    V lednu byla ve veřejné betě obnovena sociální síť Digg (Wikipedie). Dnes bylo oznámeno její ukončení (Hard Reset). Společnost Digg propouští velkou část týmu a přiznává, že se nepodařilo najít správné místo na trhu. Důvody jsou masivní problém s boty a silná konkurence. Společnost Digg nekončí, malý tým pokračuje v práci na zcela novém přístupu. Cílem je vybudovat platformu, kde lze důvěřovat obsahu i lidem za ním. Od dubna se do Diggu na plný úvazek vrací Kevin Rose, zakladatel Diggu z roku 2004.

    Ladislav Hagara | Komentářů: 5
    13.3. 12:33 | Zajímavý projekt

    MALUS je kontroverzní proprietarní nástroj, který svým zákazníkům umožňuje nechat AI, která dle tvrzení provozovatelů nikdy neviděla původní zdrojový kód, analyzovat dokumentaci, API a veřejná rozhraní jakéhokoliv open-source projektu a následně úplně od píky vygenerovat funkčně ekvivalentní software, ovšem pod libovolnou licencí.

    NUKE GAZA! 🎆 | Komentářů: 17
    13.3. 03:55 | Bezpečnostní upozornění

    Příspěvek na blogu Ubuntu upozorňuje na několik zranitelností v rozšíření Linuxu o mandatorní řízení přístupu AppArmor. Společně jsou označovány jako CrackArmor. Objevila je společnost Qualys (technické detaily). Neprivilegovaný lokální uživatel se může stát rootem. Chyba existuje od roku 2017. Doporučuje se okamžitá aktualizace. Problém se týká Ubuntu, Debianu nebo SUSE. Red Hat nebo Fedora pro mandatorní řízení přístupu používají SELinux.

    Ladislav Hagara | Komentářů: 2
    Které desktopové prostředí na Linuxu používáte?
     (16%)
     (7%)
     (0%)
     (11%)
     (29%)
     (2%)
     (5%)
     (1%)
     (13%)
     (24%)
    Celkem 1084 hlasů
     Komentářů: 26, poslední 12.3. 08:56
    Rozcestník

    Dotaz: Ulozeni a cteni z pole

    29.7.2015 16:40 Lucius
    Ulozeni a cteni z pole
    Přečteno: 475×
    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á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.