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 04:11 | Nová verze

    Rocky Linux byl vydán v nové stabilní verzi 9.4. Přehled novinek v poznámkách k vydání.

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

    Dellu byla odcizena databáze zákazníků (jméno, adresa, seznam zakoupených produktů) [Customer Care, Bleeping Computer].

    Ladislav Hagara | Komentářů: 2
    včera 21:11 | Zajímavý článek

    V lednu byl otevřen editor kódů Zed od autorů editoru Atom a Tree-sitter. Tenkrát běžel pouze na macOS. Byl napevno svázán s Metalem. Situace se ale postupně mění. V aktuálním příspěvku Kdy Zed na Linuxu? na blogu Zedu vývojáři popisují aktuální stav. Blíží se alfa verze.

    Ladislav Hagara | Komentářů: 5
    včera 14:33 | Pozvánky

    O víkendu 11. a 12. května lze navštívit Maker Faire Prague, festival plný workshopů, interaktivních činností a především nadšených a zvídavých lidí.

    Ladislav Hagara | Komentářů: 0
    8.5. 21:55 | Nová verze

    Byl vydán Fedora Asahi Remix 40, tj. linuxová distribuce pro Apple Silicon vycházející z Fedora Linuxu 40.

    Ladislav Hagara | Komentářů: 21
    8.5. 20:22 | IT novinky

    Představena byla služba Raspberry Pi Connect usnadňující vzdálený grafický přístup k vašim Raspberry Pi z webového prohlížeče. Odkudkoli. Zdarma. Zatím v beta verzi. Detaily v dokumentaci.

    Ladislav Hagara | Komentářů: 5
    8.5. 12:55 | Nová verze

    Byla vydána verze R14.1.2 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5). Přehled novinek v poznámkách k vydání, podrobnosti v seznamu změn.

    JZD | Komentářů: 0
    7.5. 18:55 | IT novinky

    Dnešním dnem lze již také v Česku nakupovat na Google Store (telefony a sluchátka Google Pixel).

    Ladislav Hagara | Komentářů: 10
    7.5. 18:33 | IT novinky

    Apple představil (keynote) iPad Pro s čipem Apple M4, předělaný iPad Air ve dvou velikostech a nový Apple Pencil Pro.

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

    Richard Biener oznámil vydání verze 14.1 (14.1.0) kolekce kompilátorů pro různé programovací jazyky GCC (GNU Compiler Collection). Jedná se o první stabilní verzi řady 14. Přehled změn, nových vlastností a oprav a aktualizovaná dokumentace na stránkách projektu. Některé zdrojové kódy, které bylo možné přeložit s předchozími verzemi GCC, bude nutné upravit.

    Ladislav Hagara | Komentářů: 0
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (63%)
     (8%)
     (13%)
     (16%)
    Celkem 146 hlasů
     Komentářů: 10, poslední 8.5. 17:35
    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: 91×
    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.