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

    Byla vydána nová verze 25.12.30 svobodného multiplatformního video editoru Shotcut (Wikipedie) postaveného nad multimediálním frameworkem MLT. Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.

    Ladislav Hagara | Komentářů: 0
    včera 18:55 | IT novinky

    Společnost Valve publikovala přehled To nej roku 2025 ve službě Steam aneb ohlédnutí za nejprodávanějšími, nejhranějšími a dalšími nej hrami roku 2025.

    Ladislav Hagara | Komentářů: 0
    včera 16:11 | Komunita

    Byly publikovány výsledky průzkumu mezi uživateli Blenderu uskutečněného v říjnu a listopadu 2025. Zúčastnilo se více než 5000 uživatelů.

    Ladislav Hagara | Komentářů: 0
    včera 03:33 | Bezpečnostní upozornění

    V dokumentově orientované databázi MongoDB byla nalezena a v upstreamu již opravena kritická bezpečností chyba CVE-2025-14847 aneb MongoBleed.

    Ladislav Hagara | Komentářů: 0
    29.12. 23:11 | IT novinky

    Při úklidu na Utažské univerzitě se ve skladovacích prostorách náhodou podařilo nalézt magnetickou pásku s kopií Unixu V4. Páska byla zaslána do počítačového muzea, kde se z pásky úspěšně podařilo extrahovat data a Unix spustit. Je to patrně jediný známý dochovaný exemplář tohoto 52 let starého Unixu, prvního vůbec programovaného v jazyce C.

    🇨🇽 | Komentářů: 1
    29.12. 15:55 | Komunita

    FFmpeg nechal kvůli porušení autorských práv odstranit z GitHubu jeden z repozitářů patřících čínské technologické firmě Rockchip. Důvodem bylo porušení LGPL ze strany Rockchipu. Rockchip byl FFmpegem na porušování LGPL upozorněn již téměř před dvěma roky.

    🇨🇽 | Komentářů: 7
    29.12. 15:44 | Zajímavý software

    K dispozici je nový CLI nástroj witr sloužící k analýze běžících procesů. Název je zkratkou slov why-is-this-running, 'proč tohle běží'. Klade si za cíl v 'jediném, lidsky čitelném, výstupu vysvětlit odkud daný spuštěný proces pochází, jak byl spuštěn a jaký řetězec systémů je zodpovědný za to, že tento proces právě teď běží'. Witr je napsán v jazyce Go.

    🇨🇽 | Komentářů: 1
    29.12. 15:33 | Zajímavý software

    Yazi je správce souborů běžící v terminálu. Napsán je v programovacím jazyce Rust. Podporuje asynchronní I/O operace. Vydán byl v nové verzi 25.12.29. Instalovat jej lze také ze Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    26.12. 18:44 | Komunita

    Od soboty do úterý probíhá v Hamburku konference 39C3 (Chaos Communication Congress) věnovaná také počítačové bezpečnosti nebo hardwaru. Program (jiná verze) slibuje řadu zajímavých přednášek. Streamy a záznamy budou k dispozici na media.ccc.de.

    Ladislav Hagara | Komentářů: 0
    26.12. 13:22 | Zajímavý software

    Byl představen nový Xserver Phoenix, kompletně od nuly vyvíjený v programovacím jazyce Zig. Projekt Phoenix si klade za cíl být moderní alternativou k X.Org serveru.

    🇨🇽 | Komentářů: 7
    Kdo vám letos nadělí dárek?
     (33%)
     (1%)
     (23%)
     (1%)
     (2%)
     (1%)
     (11%)
     (11%)
     (17%)
    Celkem 195 hlasů
     Komentářů: 21, poslední včera 18:58
    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: 371×
    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.