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 08:22 | Bezpečnostní upozornění

NÚKIB (Národní úřad pro kybernetickou a informační bezpečnost) informuje o zranitelnosti ROCA v procesu generování RSA klíčů, který se odehrává v softwarové knihovně implementované například v kryptografických čipových kartách, bezpečnostních tokenech a dalších hardwarových čipech vyrobených společností Infineon Technologies AG. Zranitelnost umožňuje praktický faktorizační útok, při kterém útočník dokáže vypočítat

… více »
Ladislav Hagara | Komentářů: 0
dnes 01:23 | Zajímavý software

Příspěvek na blogu otevřené certifikační autority Let's Encrypt informuje o začlenění podpory protokolu ACME (Automatic Certificate Management Environment) přímo do webového serveru Apache. Klienty ACME lze nahradit novým modulem Apache mod_md. Na vývoj tohoto modulu bylo uvolněno 70 tisíc dolarů z programu Mozilla Open Source Support (MOSS). K rozchození HTTPS na Apache stačí nově přidat do konfiguračního souboru řádek s ManagedDomain. Minutový videonávod na YouTube [reddit].

Ladislav Hagara | Komentářů: 0
včera 14:15 | Komunita

Daniel Stenberg, autor nástroje curl, na svém blogu oznámil, že obdržel letošní Polhemovu cenu, kterou uděluje Švédská inženýrská asociace za „technologickou inovaci nebo důvtipné řešení technického problému“.

marbu | Komentářů: 9
včera 13:40 | Pozvánky

Cílem Social Good Hackathonu, který se uskuteční 21. a 22. října v Brně, je vymyslet a zrealizovat projekty, které pomůžou zlepšit svět kolem nás. Je to unikátní příležitost, jak představit nejrůznější sociální projekty a zrealizovat je, propojit aktivní lidi, zástupce a zástupkyně nevládních organizací a lidi z prostředí IT a designu. Hackathon pořádá brněnská neziskovka Nesehnutí.

… více »
Barbora | Komentářů: 1
včera 00:44 | Pozvánky

V sobotu 21. října 2017 se na půdě Elektrotechnické fakulty ČVUT v Praze uskuteční RT-Summit – setkání vývojářů linuxového jádra a uživatelů jeho real-time verze označované jako preempt-rt.

… více »
Pavel Píša | Komentářů: 8
16.10. 23:44 | Bezpečnostní upozornění

V Linuxu byla nalezena bezpečnostní chyba CVE-2017-15265 zneužitelná k lokální eskalaci práv. Jedná se o chybu v části ALSA (Advanced Linux Sound Architecture).

Ladislav Hagara | Komentářů: 1
16.10. 22:44 | Komunita

Greg Kroah-Hartman informuje na svém blogu, že do zdrojových kódu linuxového jádra bylo přidáno (commit) prohlášení Linux Kernel Enforcement Statement. Zdrojové kódy Linuxu jsou k dispozici pod licencí GPL-2.0. Prohlášení přidává ustanovení z GPL-3.0. Cílem je chránit Linux před patentovými trolly, viz například problém s bývalým vedoucím týmu Netfilter Patrickem McHardym. Více v často kladených otázkách (FAQ).

Ladislav Hagara | Komentářů: 4
16.10. 22:04 | Pozvánky

Rádi bychom vás pozvali na přednášku o frameworku Avocado. Jedná se o testovací framework další generace, inspirovaný Autotestem a moderními vývojovými nástroji, jako je třeba git. Přednáška se bude konat 23. října od 17 hodin na FEL ČVUT (Karlovo náměstí, budova E, auditorium K9 – KN:E 301). Více informací na Facebooku.

… více »
mjedlick | Komentářů: 0
16.10. 21:44 | Bezpečnostní upozornění

Nový útok na WPA2 se nazývá KRACK a postihuje prakticky všechna Wi-Fi zařízení / operační systémy. Využívá manipulace s úvodním handshake. Chyba by měla být softwarově opravitelná, je nutné nainstalovat záplaty operačních systémů a aktualizovat firmware zařízení (až budou). Mezitím je doporučeno používat HTTPS a VPN jako další stupeň ochrany.

Václav HFechs Švirga | Komentářů: 3
15.10. 00:11 | Zajímavý projekt

Server Hackaday představuje projekt RainMan 2.0, aneb jak naučit Raspberry Pi 3 s kamerovým modulem pomocí Pythonu a knihovny pro rozpoznávání obrazu OpenCV hrát karetní hru Blackjack. Ukázka rozpoznávání karet na YouTube. Zdrojové kódy jsou k dispozici na GitHubu.

Ladislav Hagara | Komentářů: 0
Jak se vás potenciálně dotkne trend odstraňování analogového audio konektoru typu 3,5mm jack z „chytrých telefonů“?
 (12%)
 (0%)
 (0%)
 (0%)
 (71%)
 (18%)
Celkem 17 hlasů
 Komentářů: 0
    Rozcestník

    Dotaz: Ulozeni a cteni z pole

    29.7.2015 16:40 Lucius
    Ulozeni a cteni z pole
    Přečteno: 375×
    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: 38 | 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: 38 | 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: 44 | blog: Republic of Mordor | Zürich
    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: 38 | 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: 44 | blog: Republic of Mordor | Zürich
    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: 44 | blog: Republic of Mordor | Zürich
    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: 44 | blog: Republic of Mordor | Zürich
    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: 44 | blog: Republic of Mordor | Zürich
    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.