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 14:22 | IT novinky

V červnu loňského roku bylo představeno Raspberry Pi 4 s 1 GB, 2 GB a 4 GB RAM. Dnes přibyla varianta s 8 GB RAM za 75 dolarů. Současně bylo oznámeno přejmenování Raspbianu na Raspberry Pi OS. K dispozici je beta verze 64bitové varianty. Minulý týden byla oznámena beta verze firmwaru umožňujícího bootování Raspberry Pi 4 z USB místo z SD karty.

Ladislav Hagara | Komentářů: 0
dnes 07:00 | Zajímavý článek

Portál Stack Overflow po roce opět vyzpovídal své uživatele, jedná se především o vývojáře softwaru, a zveřejnil detailní výsledky průzkumu. Průzkumu se letos zúčastnilo téměř 65 tisíc vývojářů. Jejich nejpopulárnější i nejmilovanější platformou zůstává Linux.

Ladislav Hagara | Komentářů: 6
dnes 00:33 | Nová verze

Po deseti měsících vývoje byla vydána nová verze 3.10 svobodného alternativního webového prohlížeče NetSurf (Wikipedie). Přehled změn v cgitu.

Ladislav Hagara | Komentářů: 4
včera 23:55 | Nová verze

Oznámení o vydání nové verze 8.3 sady aplikací pro SSH komunikaci OpenSSH obsahuje upozornění, že vzhledem v lednu publikovanému útoku na SHA-1 bude v blízké budoucnosti v OpenSSH ve výchozím stavu zakázáno použití algoritmu ssh-rsa. Zda bude komunikace se serverem i po tomto zákazu fungovat, lze vyzkoušet pomocí příkazu "ssh -oHostKeyAlgorithms=-ssh-rsa user@host".

Ladislav Hagara | Komentářů: 4
26.5. 17:11 | Nová verze

Byla vydána nová stabilní verze 5.15 toolkitu Qt. Přehled novinek na wiki stránce. Jedná se o LTS verzi. V důsledku nedávných změn je ale dlouhodobá podpora pouze pro držitele komerční licence.

Ladislav Hagara | Komentářů: 17
26.5. 11:11 | Komunita

Libre Graphics Meeting 2020, tj. konference a setkání vývojářů a uživatelů svobodných grafických softwarů, proběhne online od středy 27. května do pátku 29. května. Na programu jsou zajímavé přednášky i tutoriály. Sledovat je lze zdarma a bez registrace.

Ladislav Hagara | Komentářů: 2
26.5. 07:00 | Komunita

Canonical na svém blogu oznámil, že Ubuntu 18.04 LTS získalo certifikaci FIPS 140-2 Level 1. Jedná se o americký vládní standard pro počítačovou bezpečnost používaný ke schvalování kryptografických modulů. Certifikace bývá vyžadována u státních, zdravotnických a bankovních IT systémů.

Ladislav Hagara | Komentářů: 16
25.5. 11:44 | Nová verze

Linux Kodachi, linuxová distribuce zaměřená na bezpečnost a ochranu soukromí, byl vydán ve verzi 7.0. Vychází z Xubuntu 18.04. Přehled novinek v changelogu.

Ladislav Hagara | Komentářů: 0
25.5. 11:22 | Humor

Linus Torvalds se v rámci oznámení o vydání Linuxu 5.7-rc7 pochlubil vylepšením svého hlavního počítače: Poprvé za 15 let není uvnitř Intel, není to ještě ARM, je to AMD Threadripper 3970x, allmodconfig je třikrát rychlejší.

Ladislav Hagara | Komentářů: 29
25.5. 11:11 | Komunita

PGCon 2020, tj. konference vývojářů a uživatelů databázového systému PostgreSQL, proběhne online od úterý 26. května do pátku 29. května. Na programu jsou zajímavé přednášky i tutoriály. Sledovat je lze zdarma a bez registrace.

Ladislav Hagara | Komentářů: 0
Kdy přecházíte na nové vydání distribuce/OS?
 (14%)
 (13%)
 (22%)
 (8%)
 (4%)
 (41%)
Celkem 338 hlasů
 Komentářů: 0
Rozcestník

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

21.5. 09:23 Lukas48
Zpracování dat z tabulky pomocí awk
Přečteno: 192×
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. 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
Řešení 1× (Bhezret)
21.5. 09:58 drnest | skóre: 10
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. 10:00 drnest | skóre: 10
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. 18:42 Andrej | skóre: 47 | blog: Republic of Mordor | Zürich
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. 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. 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. 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. 18:40 Andrej | skóre: 47 | blog: Republic of Mordor | Zürich
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.