abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 14:44 | IT novinky Ladislav Hagara | Komentářů: 4
    dnes 09:00 | Zajímavý software

    Jose Fernandez z Netflixu představil nástroj bpftop pro monitorování eBPF programů.

    Ladislav Hagara | Komentářů: 0
    dnes 08:00 | Nová verze

    Incus (GitHub), komunitní fork nástroje pro správu kontejnerů LXD, byl vydán ve verzi 0.6 (YouTube). Vyzkoušet jej lze online ve webovém prohlížeči.

    Ladislav Hagara | Komentářů: 0
    včera 19:22 | IT novinky

    Společnost Broadcom prodává svou End-User Computing (EUC) Division (Workspace ONE a Horizon) koupenou se společností VMware investiční společnosti KKR za 4 miliardy dolarů.

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

    Začal veletrh MWC Barcelona 2024 (Mobile World Congress). Firmy představují své novinky. Lenovo například ThinkBook s průhledným displejem (YouTube).

    Ladislav Hagara | Komentářů: 1
    včera 12:55 | Nová verze

    Byla vydána nová verze 1.46.0 sady nástrojů pro správu síťových připojení NetworkManager. Novinkám se v příspěvku na blogu NetworkManageru věnuje Fernando F. Mancera. Vypíchnout lze podporu randomizace MAC adresy na základě Wi-Fi sítě (wifi.cloned-mac-address=stable-ssid). Schváleno pro Fedora Linux 40.

    Ladislav Hagara | Komentářů: 0
    25.2. 22:00 | Zajímavý článek

    Byly zveřejněny výsledky průzkumu mezi vývojáři v programovacím jazyce Rust: 2023 Annual Rust Survey Results. Téměř 70 % účastníků průzkumu vyvíjí na Linuxu, 85 % pro Linux, téměř 62 % používá Visual Studio Code, …

    Ladislav Hagara | Komentářů: 5
    25.2. 21:11 | Nová verze

    Dlaždicový správce oken, resp. kompozitor pro Wayland Sway byl vydán ve verzi 1.9 založené na wlroots 0.17. Měl by poskytovat lepší výkon a přidává několik konfiguračních voleb, příkazů atd.

    Fluttershy, yay! | Komentářů: 0
    25.2. 13:33 | Nová verze

    Byla vydána nová verze 2.44.0 distribuovaného systému správy verzí Git. Přispělo 85 vývojářů, z toho 34 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    24.2. 17:11 | Nová verze

    KiCad (Wikipedie), sada svobodných softwarových nástrojů pro počítačový návrh elektronických zařízení (EDA), byl vydán v nové major verzi 8.0.0 (𝕏). Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 2
    Kolik máte nálepek na víku notebooku?
     (18%)
     (59%)
     (5%)
     (3%)
     (5%)
     (9%)
    Celkem 406 hlasů
     Komentářů: 15, poslední včera 21:46
    Rozcestník

    Dotaz: zpracovani souboru awkem

    3.1.2006 16:42 Karel Borkovec | skóre: 28 | blog: HP_NX9010 | Tábor
    zpracovani souboru awkem
    Přečteno: 90×
    Dobrý den. Řeším následující problém: Mám takovýto výpis v souboru:
      uzivatel1 in                                       :             94M
      uzivatel1 out                                      :             30M
      uzivatel2 in                                       :            315M
      uzivatel2 out                                      :             45M
      uzivatel3 in                                       :            169M
      uzivatel3 out                                      :             50M
    
    Potřeboval bych dostat do souboru toto (tzn. sečíst odeslaná i přijatá data a zobrazit takto):
    uzivatel1;	124
    uzivatel2;	360
    uzivatel3;	219
    
    Zkoušel jsem to pomocí AWKu, ale hrozně v tom tápu. Neporadil by někdo prosím? Dekuji

    Odpovědi

    3.1.2006 18:26 razor | skóre: 33
    Rozbalit Rozbalit vše Re: zpracovani souboru awkem
    Pokud by si to chtěl v pythonu, tak by to šlo nějak takhle (netvrdím, že by to nešlo napsat lépe :-) )
    import re
    
    input = file('souborA', 'r')
    output = file('souborB', 'w')
    
    result = {}
    try:
    	for line in input.readlines():
    		splitted = re.split('\s', line)
    		key = splitted[0]
    		value = int(re.split('\D', splitted[3])[0])
    		if result.has_key(key):
    			result[key] = result[key] + value
    		else:
    			result[key] = value
    	for pairs in result.items():
    		output.write(pairs[0] + ';\t' + str(pairs[1]) + '\n')
    finally:
        input.close()
        output.close()
    3.1.2006 20:37 Bones | skóre: 15 | blog:
    Rozbalit Rozbalit vše Re: zpracovani souboru awkem

    AWK neumim (ale chci se ho nekdy naucit), tak ti alespon dam linky na dokumentaci.

    Ceska: Tam najdes dalsi odkazy.
    Anglicka: manualova stranka, info dokument, ci GAWK manual
    3.1.2006 20:55 Franta Hanzlik
    Rozbalit Rozbalit vše Re: zpracovani souboru awkem
    Nepopisujete presne strukturu vstupnich dat, takze zhruba :
    awk 'BEGIN{MU="";SUM=0}{SUM1=gensub(/[^0-9]$/,"",1,$NF) + 0; if (MU == $1 || MU == ""){MU=$1;SUM+=SUM1} else {printf "%s - %i\n",MU,SUM; SUM=SUM1;MU=$1}}END{printf "%s - %i\n",MU,SUM}'
    
    - nebo udelat awk script (a chmod +x) :
    #!/bin/awk -f
    
    BEGIN{MU="";SUM=0}      # MU: Minuly Uzivatel, SUM: jeho soucet dat
    {SUM1=gensub(/[^0-9]$/,"",1,$NF) + 0    # na konci posledni polozky (=objem) urizni vse mimo cislice (tady rezu 'M')
    if (MU == $1 || MU == ""){      # uzivatel na predchozi radce je stejny jako na aktualni nebo zacinam
            MU=$1;SUM+=SUM1
    } else {
            printf "%s - %i\n",MU,SUM; SUM=SUM1;MU=$1} #zmena, vypisuji a minuly=aktualni
    }
    END{printf "%s - %i\n",MU,SUM} # a dotisk posledniho po zpracovani souboru
    
    4.1.2006 01:41 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Proč AWK?

    AWK je velmi dobrá věc, ale je to trochu jednodušší s drobnou pomocí sedu:


    cat vstup.txt | \
    sed 's/ *\([^ \t]*\).*:[ \t]*\([0-9]*\).*/\1;\t\2/' | \
    awk '{ if ( par % 2 ) { sum += $2; print $1 "\t" sum; } else { sum = $2; } par++; }' \
    > vystup.txt


    Tady se jasně dělí úlohy: sed edituje, awk počítá. Doufám, že to takhle stačí a že to pomůže. Pokud potřebujete ještě něco jiného, stačí říct. :-)

    4.1.2006 02:22 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: zpracovani souboru awkem
    To množství dat bude vždycky v megabajtech? Pokud ne, zde máte další řešení v pythonu:
    #!/usr/bin/env python
    import re
    
    infile = open('infile.dat')
    regexp = re.compile(r'^\s+(\S+) (in|out)\s+:\s+(\d+)(.*)')
    result={}
    for line in infile.xreadlines():
      user, direction, amount, unit = re.search(regexp, line).groups()
      amount = int(amount)
    
      if 'G' in unit:
        amount *= 1024*1024*1024
      elif 'M' in unit:
        amount *= 1024*1024
      elif 'k' in unit:
        amount *= 1024
    
      try:
        result[user] += amount
      except KeyError:
        result[user] = amount
    
    infile.close()
    
    outfile = open('outfile.dat', 'w')
    for user, amount in result.items():
      outfile.write('%s;\t%d\n' %(user, amount))
    outfile.close()
    
    A vůbec - tohle by přece měl dělat ten původní program, který vygeneroval ten soubor. Nebude lepší spíš zasáhnout do zdrojáku než parsovat výstup? Hrozí nebezpečí, že se časem změní formát nebo že bude potřeba nějaká informace, kterou původní program měl, ale nevypsal.
    4.1.2006 16:19 Karel Borkovec | skóre: 28 | blog: HP_NX9010 | Tábor
    Rozbalit Rozbalit vše Re: zpracovani souboru awkem
    Možná by stálo ze to zasáhnout do zdrojáků toho programu (ipac-ng), ale to už je totálně nad moje znalosti...
    4.1.2006 16:19 Karel Borkovec | skóre: 28 | blog: HP_NX9010 | Tábor
    Rozbalit Rozbalit vše Re: zpracovani souboru awkem
    Všem mockrát děkuji!

    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.