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

    Open source modální textový editor Helix, inspirovaný editory Vim, Neovim či Kakoune, byl vydán ve verzi 25.07. Přehled novinek se záznamy terminálových sezení v asciinema v oznámení na webu. Detailně v CHANGELOGu na GitHubu.

    Ladislav Hagara | Komentářů: 0
    včera 20:44 | IT novinky

    Americký výrobce čipů Nvidia získal od vlády prezidenta Donalda Trumpa souhlas s prodejem svých pokročilých počítačových čipů používaných k vývoji umělé inteligence (AI) H20 do Číny. Prodej těchto čipů speciálně upravených pro čínský trh by tak mohl být brzy obnoven, uvedla firma na svém blogu. Americká vláda zakázala prodej v dubnu, v době eskalace obchodního sporu mezi oběma zeměmi. Tehdy to zdůvodnila obavami, že by čipy mohla využívat čínská armáda.

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

    3D software Blender byl vydán ve verzi 4.5 s prodlouženou podporou. Podrobnosti v poznámkách k vydání. Videopředstavení na YouTube.

    Ladislav Hagara | Komentářů: 0
    14.7. 22:22 | Komunita

    Open source webový aplikační framework Django slaví 20. narozeniny.

    Ladislav Hagara | Komentářů: 0
    14.7. 16:11 | Komunita

    V Brestu dnes začala konference vývojářů a uživatelů linuxové distribuce Debian DebConf25. Na programu je řada zajímavých přednášek. Sledovat je lze online.

    Ladislav Hagara | Komentářů: 0
    14.7. 11:33 | IT novinky

    Před 30 lety, tj. 14. července 1995, se začala používat přípona .mp3 pro soubory s hudbou komprimovanou pomocí MPEG-2 Audio Layer 3.

    Ladislav Hagara | Komentářů: 26
    14.7. 10:55 | IT novinky

    Výroba 8bitových domácích počítačů Commodore 64 byla ukončena v dubnu 1994. Po více než 30 letech byl představen nový oficiální Commodore 64 Ultimate (YouTube). S deskou postavenou na FPGA. Ve 3 edicích v ceně od 299 dolarů a plánovaným dodáním v říjnu a listopadu letošního roku.

    Ladislav Hagara | Komentářů: 20
    13.7. 17:55 | Zajímavý projekt

    Společnost Hugging Face ve spolupráci se společností Pollen Robotics představila open source robota Reachy Mini (YouTube). Předobjednat lze lite verzi za 299 dolarů a wireless verzi s Raspberry Pi 5 za 449 dolarů.

    Ladislav Hagara | Komentářů: 17
    11.7. 16:44 | Komunita

    Dnes v 17:30 bude oficiálně vydána open source počítačová hra DOGWALK vytvořena v 3D softwaru Blender a herním enginu Godot. Release party proběhne na YouTube od 17:00.

    Ladislav Hagara | Komentářů: 3
    11.7. 14:55 | Humor

    McDonald's se spojil se společností Paradox a pracovníky nabírá také pomocí AI řešení s virtuální asistentkou Olivii běžící na webu McHire. Ian Carroll a Sam Curry se na toto AI řešení blíže podívali a opravdu je překvapilo, že se mohli přihlásit pomocí jména 123456 a hesla 123456 a získat přístup k údajům o 64 milionech uchazečů o práci.

    Ladislav Hagara | Komentářů: 16
    Jaký je váš oblíbený skriptovací jazyk?
     (59%)
     (26%)
     (7%)
     (3%)
     (1%)
     (1%)
     (4%)
    Celkem 398 hlasů
     Komentářů: 16, poslední 8.6. 21:05
    Rozcestník

    Dotaz: Zpracování dat z tabulky pomocí awk

    21.5.2020 09:23 Lukas48
    Zpracování dat z tabulky pomocí awk
    Přečteno: 337×
    Ahoj, prosím o pomoc. Potřebuji udělat script, který mi bude počítat průměrnou hodnotu z čísel uvedené ve sloupci tabulky.

    př. tab

    a aa 1 aaa b bb 2 bbb c cc 3 ccc d dd 4 ddd

    -> tabulka je umístěna v txt souboru. Potřebuji sloupec s čísly postupně načíst do proměnné a následně sečíst. To jsem chtěl provést pomocí cyklu, kde nejdříve zjistím kolik položek v souboru je (pocet) a následné bych chtěl projít tento sloupec jako pole a postupně načítat jednotlivé položky do proměnné (suma). A potom udělat průměr. Jenže problém je v načtení dat ze souboru - hlásí mi to "command not found" Mužete mi prosím někdo pomoct? Předem děkuju

    #!/bin/sh

    pocet=$(awk {$3} data.txt) for(i=0 ; $i<=$pocet ; $i++) do x= awk /$i/ {$3} data.txt suma= $($suma + $x)

    #-------nebo takhle ale tohle taky nefunguje--------- suma=$($suma + $(awk '/$i/ {$3}' data.txt))

    done prumer=$($suma / $pocet) echo prumer

    Řešení dotazu:


    Odpovědi

    21.5.2020 09:48 Lukas48
    Rozbalit Rozbalit vše Re: Zpracování dat z tabulky pomocí awk
    Příloha:

    sorry, ale to formatování...napíšu to znova

    př. tab

     

    a b 1 d
    a b 2 d
    a b 3

    d

    a b 4 d
    21.5.2020 09:58 drnest | skóre: 13 | blog: Dřinu nechte strojům
    Rozbalit Rozbalit vše Re: Zpracování dat z tabulky pomocí awk
    Má to být úplně jinak. Řekněme, že tě zajímá třetí sloupeček:
    {
        soucet=soucet+$3
        i++
        # print i, soucet # odkomentuj zacatek, abys videl jak to nacita
    }
    
    END {
        print soucet/i
    }
    
    21.5.2020 10:00 drnest | skóre: 13 | blog: Dřinu nechte strojům
    Rozbalit Rozbalit vše Re: Zpracování dat z tabulky pomocí awk
    Ten prográmek uložíš jako tab.awk, data máš v tab.txt a spustíš to: awk -f tab.awk tab.txt
    21.5.2020 18:42 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: Zpracování dat z tabulky pomocí awk

    Jakou výhodu má mít to i ve srovnání s NR?

    21.5.2020 10:22 debian+
    Rozbalit Rozbalit vše Re: Zpracování dat z tabulky pomocí awk
    Ak iba cisiel:
    echo "a 3 b z 7 8" | tr " " "\n"| awk 'BEGIN { sum=0; count=0} /([0-9])/ {sum = sum + $1 ; (count++) } END { print sum / count }'
    Ak len priemer stlpcov:
     echo -e "a 3 b z 7 8\na 5 b z 9 10" | awk 'BEGIN { sumA=sumB=sumC=count=0} /([0-9])/ {sumA = sumA + $2 ; sumB = sumB + $5 ;sumC = sumC + $6 ; (count++) } END { print sumA / count " " sumB / count " " sumC / count}'
    21.5.2020 18:39 pavele
    Rozbalit Rozbalit vše Re: Zpracování dat z tabulky pomocí awk
    Jinak bacha na locales.

    Nevím, jestli je to ještě dnes pravda, ale pro počítání s desetinnou čárkou jsem kdysi musel použít parametr "--use-lc-numeric".

    Taky existuje mawk, který je pro počítání většího množství dat mnohem rychlejší.
    21.5.2020 10:23 debian+
    Rozbalit Rozbalit vše Re: Zpracování dat z tabulky pomocí awk
    Ak iba cisiel:
    echo "a 3 b z 7 8" | tr " " "\n"| awk 'BEGIN { sum=0; count=0} /([0-9])/ {sum = sum + $1 ; (count++) } END { print sum / count }'
    Ak len priemer stlpcov (tu netreba /([0-9])/):
     echo -e "a 3 b z 7 8\na 5 b z 9 10" | awk 'BEGIN { sumA=sumB=sumC=count=0} {sumA = sumA + $2 ; sumB = sumB + $5 ;sumC = sumC + $6 ; (count++) } END { print sumA / count " " sumB / count " " sumC / count}'
    21.5.2020 18:40 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: Zpracování dat z tabulky pomocí awk

    Šmarja! Tady v tom vlákně je normálně úplně nablito! :-D

    awk '{sum += $3} END {print sum / NR}' < data.txt
    

    (Pokud by náhodou hrozilo, že součet čísel překročí nějaké obrovské číslo (třeba 64-bitové, 18446744073709551616, byť konkrétní limit není rozumně definovaný a pojí se s ním bug), dá se AWK pomocí -M říct, aby používalo GNU GMP, tedy neomezená čísla.)

    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.