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 02:22 | Nová verze

    Společnost Murena představila (YouTube) novou verzi 4.0 mobilního operačního systému /e/OS (Wikipedie) založeného na Androidu a LineageOS bez aplikací a služeb od Googlu.

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

    V Arch User Repository (AUR) bylo kompromitováno přes 400 opomíjených balíčků (jejich seznam). Útočník do nich začlenil škodlivý npm balíček atomic-lockfile, který krade citlivá data uživatelů. Publikována byla předběžná analýza spouštěného malwaru deps.

    Ladislav Hagara | Komentářů: 8
    včera 11:33 | Nová verze

    Homebrew, správce balíčků nejen pro macOS, byl vydán ve verzi 6.0.0 (seznam změn). Hlavními novinkami jsou bezpečnostní mechanismus tap trust kvůli důvěryhodnosti závislostí, vylepšení sandboxingu na Linuxu, interní JSON API nebo zlepšení výkonu.

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

    Byla nalezena a 9. června opravena kritická zranitelnost ve FreeBSD v Kernel TLS (KTLS). Pojmenována byla Bumsrakete (FreeBSD-SA-26:26.ktls, CVE-2026-45257). Lokální neprivilegovaný uživatel může přepisovat soubory, ke kterým má právo pouze pro čtení. Přepsáním setuid binárky a jejím spuštěním může získat roota. Na všech verzích od verze 13.0 vydané v dubnu 2021.

    Ladislav Hagara | Komentářů: 2
    11.6. 14:11 | Komunita

    Vývojáři open source operačního systému ReactOS (Wikipedie), jehož cílem je kompletní binární kompatibilita s aplikacemi a ovladači pro Windows, se na síti 𝕏 pochlubili, že ReactOS zvládne počítačovou hru Half-Life.

    Ladislav Hagara | Komentářů: 4
    11.6. 10:44 | Nová verze

    Byla vydána nová verze 4.8 multiplatformního integrovaného vývojového prostředí (IDE) pro rychlý vývoj aplikaci (RAD) ve Free Pascalu Lazarus (Wikipedie). Využíván je Free Pascal Compiler (FPC) 3.2.2.

    Ladislav Hagara | Komentářů: 0
    11.6. 04:44 | Nová verze

    Apple container dospěl do verze 1.0.0. Jedná se o open source nástroj pro spouštění linuxových kontejnerů na macOS postavený nad containerization. Napsaný je v programovacím jazyce Swift a optimalizovaný pro Apple silicon.

    Ladislav Hagara | Komentářů: 5
    11.6. 03:33 | Nová verze

    Bylo vydáno Eclipse IDE 2026-06 aneb Eclipse 4.40. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.

    Ladislav Hagara | Komentářů: 0
    10.6. 15:44 | Zajímavý software

    Asterinas (GitHub) je v Rustu napsané jádro operačního systému poskytující s jádrem Linux kompatibilní ABI. Vydána byla verze 0.18.0. První distribucí postavenou nad jádrem Asterinas je Asterinas NixOS. Nejedná se o oficiální projekt NixOS a nemá nic společného s NixOS Foundation.

    Ladislav Hagara | Komentářů: 2
    10.6. 13:22 | Zajímavý článek

    Podrobně byla rozebrána kritická zranitelnost v nf_tables (CVE-2026-23111). Další lokální eskalace práv na Linuxu. V upstreamu byla zranitelnost již v únoru opravena. Ve zdrojovém kódu stačilo odstranit 1 vykřičník.

    Ladislav Hagara | Komentářů: 1
    Které desktopové prostředí na Linuxu používáte?
     (11%)
     (8%)
     (2%)
     (16%)
     (31%)
     (3%)
     (6%)
     (3%)
     (16%)
     (26%)
    Celkem 1890 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník


    Dotaz: Bash aritmeticky priemer

    6.8.2007 10:50 Mountains
    Bash aritmeticky priemer
    Přečteno: 1016×
    Zdravim, potreboval by som urobit skript ktory nacita hodnoty zo suboru a urobi s nich aritmeticky priemer. Dakujem za pomoc.

    Odpovědi

    6.8.2007 11:40 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Bash aritmeticky priemer
    Tady máš tři různé algoritmy včetně generování testovacího souboru a měření doby výpočtu.
    #!/usr/bin/python
    import random, time
    
    print 'Wait ...'
    fw = file('cisla.txt', 'w')
    for i in range(1000000):
        fw.write('%f\n' %(random.random()))
    fw.close()
    
    start = time.time()
    s = 0
    lines = 0
    for line in file('cisla.txt'):
        s += float(line)
        lines += 1
    print s/lines
    print time.time() - start
    
    start = time.time()
    s = 0
    for i, line in enumerate(file('cisla.txt')):
        s += float(line)
    print s/(i + 1)
    print time.time() - start
    
    start = time.time()
    numbers = [float(line) for line in file('cisla.txt')]
    print sum(numbers)/len(numbers)
    print time.time() - start
    
    6.8.2007 11:47 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Bash aritmeticky priemer
    Algoritmus vidím jen jeden, zato ve třech implementacích (z toho jedné tak zoufale paměťově neefektivní (aniž by to bylo vyváženo časovou náročností), že by se to dalo používat při výuce jako odstrašující příklad).
    6.8.2007 12:19 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Bash aritmeticky priemer
    Pro případ, že by se někdo špatně vyspal, uvádím ještě tohle (bez ošetřování chyb):
    #include<stdio.h>
    
    int main(void){
        FILE* fr;
        double f, s = 0, lines = 0;
    
        fr = fopen("cisla.txt", "r");
        while (fscanf(fr, "%lf\n", &f) != EOF){
            s += f;
            lines += 1;
        }
        printf("%12.12f\n", s/lines);
        fclose(fr);
        return 0;
    }
    
    Je to cca 3-4 krát rychlejší než v pythonu.
    6.8.2007 12:23 Mountains
    Rozbalit Rozbalit vše Re: Bash aritmeticky priemer
    Dakujem za Vasu ochotu a pomoc
    6.8.2007 12:44 Semo | skóre: 45 | blog: Semo
    Rozbalit Rozbalit vše Re: Bash aritmeticky priemer
    No, kedze su prazdniny, tak to domaca asi nebude, hoci to inak vykazuje vsetky jej znaky.

    Najvacsi problem je dostat hodnotu z podshellu von a trik je spocitat priemer na desatinne miesta, hoci to bash nevie.
    #!/bin/bash
    set -- `while read n; do
      sucet=$((sucet + n))
      lines=$((lines + 1))
      echo $sucet $lines
    done <subor.in | tail -n -1`
    
    sucet=$1
    lines=$2
    
    echo $((sucet / lines))
    # # ak to chces na 2 destinne miesta:
    # avgfrac=$((sucet * 100 / lines))
    # echo ${avgfrac%??}.${avgfrac: -2}
    
    
    If you hold a Unix shell up to your ear, you can you hear the C.
    6.8.2007 12:47 lada
    Rozbalit Rozbalit vše Re: Bash aritmeticky priemer
    pokud to ma byt ciste v shellu tak asi takto: #!/bin/sh

    text=`cat soubor_dat |tr '\n' '+'`0
    pocet=`cat soubor_dat |wc -l`
    prumer=`echo "($text)/$pocet"|bc -l`
    echo $prumer
    6.8.2007 13:24 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Bash aritmeticky priemer
    Tak tomu říkám řešení čistě v shellu… :-)
    6.8.2007 13:49 Zdenek
    Rozbalit Rozbalit vše Re: Bash aritmeticky priemer
    Zatim je to ovsem nejbliz k zadani. A nepochybne to spravne *nix reseni :-)
    6.8.2007 14:35 Semo | skóre: 45 | blog: Semo
    Rozbalit Rozbalit vše Re: Bash aritmeticky priemer
    Potrebuje to tr a bc. Riesenie CISTO v bashi mam zatial iba ja :-)
    If you hold a Unix shell up to your ear, you can you hear the C.
    6.8.2007 14:50 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Bash aritmeticky priemer
    Dá se to napsat třeba i takhle:
    #!/bin/awk -f
    BEGIN{lines=0;s=0;}
    {lines++;s+=$1;}
    END{print "prumer je", s/lines;}
    
    no a awk už tak skoro "v shellu" je, že? Nebo teda v posixu. Teda *nixu. Teda ... no prostě je to víc v shellu než třeba bc. A určitě je to mnohem blíž shellu než python. Ale asi je to trochu dál shellu než třeba "tail". To jsou problémy ...
    6.8.2007 15:24 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Bash aritmeticky priemer
    Já si hlavně myslím, že zadání typu "udělejte XY v ZW" jsou dobrá akorát tak pro školní úlohy. V praxi je daleko užitečnější umět zvolit vhodný nástroj pro danou úlohu (zde podle okolností např. awk, bc, perl, python nebo C), než se snažit ji za každou cenu udolat nevhodně zvoleným nástrojem.
    6.8.2007 14:24 pavel
    Rozbalit Rozbalit vše Re: Bash aritmeticky priemer
    Já řeším podobný problém, ale data mám ve sloupcích s oddělovačem ; Jak sčítat data ve sloupci?
    6.8.2007 14:47 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Bash aritmeticky priemer
    awk(1)
    6.8.2007 15:26 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Bash aritmeticky priemer
    Takže bude tolik průměrů, kolik je sloupců?
    #!/usr/bin/python
    # -*- coding:utf-8 -*-
    import random, time
    
    radky = 5
    sloupce = 10
    
    fw = file('cisla.txt', 'w')
    for i in range(radky):
        cisla_str = ['%f' %(i*j) for j in range(sloupce)]
        radek = ';'.join(cisla_str)
        fw.write('%s\n' %radek)
    fw.close()
    
    fr = file('cisla.txt')
    sums = [float(x) for x in fr.readline().split(';')]
    for i, line in enumerate(fr):
        for j, val_str in enumerate(line.split(';')):
            sums[j] += float(val_str)
    i += 2
    avgs = [x/i for x in sums]
    print sums
    print avgs
    
    A na začátku se neví, kolik těch sloupců je, že?
    6.8.2007 17:50 pavel
    Rozbalit Rozbalit vše Re: Bash aritmeticky priemer
    Sloupců se ví (je to druhý až patnáctý), ale počet řádků mám pokaždé jiný...
    6.8.2007 17:54 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Bash aritmeticky priemer
    Aha. Ale snad by mělo jít použít to, co jsem napsal, protože to funguje univerzálně pro libovolný (rozumný) počet sloupců i řádků. Samo si to příslušná čísla zjistí.

    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.