Pouze tento týden sleva až 80 % na e-learning týkající se Swift
Využij akce až 80 % zdarma při nákupu e-learningu. Více informací.

Diskuze: Bash - Zpracování dat z tabulky pomocí awk

Aktivity
Avatar
Lukáš Bobka:21.5.2020 9:56

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 b 1 d
a b 2 d
a b 3 d
a b 4 d

-> 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
 
Odpovědět
21.5.2020 9:56
Avatar
Atrament
Super redaktor
Avatar
Odpovídá na Lukáš Bobka
Atrament:21.5.2020 13:00

Awk to umí jedním řádkem:

awk '{sum+=$3; i++} END{print sum/i}' data.txt
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět
21.5.2020 13:00
Avatar
Lukáš Bobka:26.5.2020 0:36

diky ;) tak se povedlo

 
Nahoru Odpovědět
26.5.2020 0:36
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Odpovídá na Lukáš Bobka
Lukáš Bobka:29.6.2020 17:35

Mám ještě prosbu, mohl by mi někdo dát nějaký tip jak udělat script, který za určitý čas zkopíruje obsah adresáře do souboru? Nevím si s tím rady... :/

 
Nahoru Odpovědět
29.6.2020 17:35
Avatar
Radek Veverka
Redaktor
Avatar
Odpovídá na Lukáš Bobka
Radek Veverka:30.6.2020 10:35

To zní jako bys chtěl udělat nějaké automatické zálohování.
Pro uložení adresářové struktury do jednoho souboru můžeš použít tar:

tar -cf vysledny_soubor.tar slozka

Pokud chceš složku navíc zkomprimovat, stačí přidat flag:

tar -zcf vysledny_soubor.tar.gz slozka

Eventuelně lze použít klasický zip, ale možná ho budeš muset doinstalovat, záleží na distribuci.
Pro spouštění skriptu v pravidelných intervalech mrkni na cron.

 
Nahoru Odpovědět
30.6.2020 10:35
Avatar
Lukáš Bobka:16.7.2020 23:01

díky za tipy, a za pomoc....vyřešeno pomoci cronu.. :)

 
Nahoru Odpovědět
16.7.2020 23:01
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.