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í
×

    včera 17:11 | Bezpečnostní upozornění

    Zero Day Initiative zveřejnila informace o 6 bezpečnostních chybách (1, 2, 3, 4, 5, 6) v MTA Exim. Nejvážnější z nich CVE-2023-42115 má CVSS 9.8. Na opravě chyb se pracuje.

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

    Knihovna libvpx byla vydána ve verzi 1.13.1. Řešena je kritická bezpečnostní chyba CVE-2023-5217 (heap buffer overflow in vp8 encoding). Chyba je již opravena také v Chrome / Chromium 117.0.5938.132 a Firefoxu 118.0.1.

    Ladislav Hagara | Komentářů: 0
    29.9. 23:55 | Nová verze

    Balíček kmod s nástroji pro práci s linuxovými moduly byl vydán ve verzi 31. Nově umí modprobe zavést modul nacházející se v libovolném adresáři (# modprobe ./drivers/gpu/drm/i915/i915.ko).

    Ladislav Hagara | Komentářů: 0
    29.9. 23:11 | IT novinky

    Adventura Trüberbrook je na portále GOG.com zdarma, akce trvá do 2. října.

    Fluttershy, yay! | Komentářů: 0
    29.9. 12:44 | Nová verze

    Sound Open Firmware, projekt Linux Foundation, open source audio DSP firmware a SDK, byl vydán ve verzi 2.7.0. Z novinek lze vypíchnout podporu platformy AMD Van Gogh.

    Ladislav Hagara | Komentářů: 0
    29.9. 12:22 | Komunita

    Richard Stallman v den oslav 40. výročí GNU oznámil, že má rakovinu (YouTube).

    Ladislav Hagara | Komentářů: 44
    29.9. 08:00 | Zajímavý projekt

    DIY trackball Ploopy novou variantu Adept, na rozdíl od předchozích používá 44mm kouli, má symetrický tvar a šest tlačítek, snímač zůstává PMW-3360, novinkou je použití Raspberry Pi Pico, na kterém běží firmware QMK s podporou grafické konfigurační aplikace VIA. Předobjednávky jsou otevřeny za ceny 80-105 CAD.

    Fluttershy, yay! | Komentářů: 0
    28.9. 15:22 | IT novinky

    Probíhá Meta Connect 2023. Společnost Meta představuje své novinky v oblasti AI a virtuální, smíšené a rozšířené reality. Představeny byly nové chytré brýle Ray-Ban | Meta a headset Meta Quest 3.

    Ladislav Hagara | Komentářů: 0
    28.9. 12:00 | IT novinky

    Eben Upton oficiálně představil (YouTube) nové Raspberry Pi 5 (YouTube). Je více než 2x výkonnější než jeho předchůdce, model 4B.

    Ladislav Hagara | Komentářů: 12
    28.9. 08:00 | Nová verze

    Byl vydán (YouTube) Counter-Strike 2. Nativně také pro Linux. Jedná se o největší technologický skok v historii této populární herní série.

    Ladislav Hagara | Komentářů: 13
    Raději
     (50%)
     (50%)
    Celkem 4 hlasů
     Komentářů: 1, poslední dnes 07:28
    Rozcestník

    Dotaz: Zpracovani textu pomoci AWK

    1.3.2008 11:27 Adam Koutny
    Zpracovani textu pomoci AWK
    Přečteno: 298×
    Dobry den, resim problem ohledne zpracovani textu pod linuxem (tedy chci pouzit std unix. utility jako cat, sed, awk...)

    mam dva soubory, prvni (a.txt) ma takovyto obsah:
    A:10
    B:30
    D:33
    
    druhy (b.txt) vypada takto:
    1:3:8:2:5:19
    Cisla v druhem souboru reprezentuji toto:

    1 = A 3 = B ... 5 = E 19 = suma(A-E)

    Ja bych potreboval soubor b.txt upravit podle prvniho souboru aby vypadal takto:
    10:30:8:33:5:86
    tzn hodnoty pismen, ktere se nachazeji v souboru a.txt (tedy A,B,D) prenesu na urcenou pozici v souboru b.txt a ty hodnoty (napr C), ktere se v prvnim souboru nenachazeji, ty v druhem souboru ponecham. Nakonec jeste zbyva vypocitat novou sumu.

    Zacal jsem se ucit jazyk awk, ten je podle meho nazoru na tuto operaci idealni. Stale vsak nejak nemohu prijit na to, jak to cele provest. Perl ani python pouzit nechci. Budu rad za vsechny rady, dekuji.

    Odpovědi

    1.3.2008 12:14 Miška | skóre: 31 | Praha
    Rozbalit Rozbalit vše Re: Zpracovani textu pomoci AWK
    cca +-
    #!/bin/sh
    cat a.txt | tr [A-F] [1-6] | sed 's|\([0-9]\):\([0-9]*\)|s:\1:\2:g|' > /tmp/tempfile.$$
    SUM="`cat b.txt | sed -f /tmp/tempfile.$$`"
    POM="`echo $SUM | sed 's|:|\ +\ |' | sed 's|+[0-9]*$||'`"
    SUM="$SUM:`expr $POM`"
    echo "$SUM" > b.txt
    rm -f /tmp/tempfile.$$
    
    1.3.2008 12:46 chearius | skóre: 7 | blog: /dev/chearius | Heidelberg
    Rozbalit Rozbalit vše Re: Zpracovani textu pomoci AWK
    Ten skript bohuzel nefunguje vzdycky spravne. V pripade, ze budou v souboru b.txt dve stejne hodnoty, tak je vysledek spatne. Napriklad:

    a.txt
    A:10
    B:30
    D:33
    
    a b.txt
    1:1:8:2:5:17
    
    vrati vas skript vysledek:
    10:10:8:30:5:107:
    
    Spravny vysledek by ale mel podle mne byt
    10:30:8:33:5:86
    
    Problem prave v tech substitucich ukladanych do toho docasneho souboru.
    1.3.2008 12:22 chearius | skóre: 7 | blog: /dev/chearius | Heidelberg
    Rozbalit Rozbalit vše Re: Zpracovani textu pomoci AWK
    V awk by se to dalo resit treba takto (neni to idealni reseni, ale funguje):
    BEGIN {
                    FS = ":";
                    cells = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
                    for (i = 0; i < length(cells); i++)
                            values[i] = "nan";
            }
    
    /^[A-Z][:][0-9]+$/ {
                    ind = index(cells, $1) - 1;
                    if (ind >= 0)
                            values[ind] = $2;
    
            }
    
    /^([0-9]+[:]?)+$/ {
                    result = "";
                    sum = 0;
    
                    for (i = 0; i < NF - 1; i++) {
                            if (match(values[i], /[0-9]+/) > 0) {
                                    result = result values[i] ":";
                                    sum += values[i];
                            } else {
                                    result = result $(i + 1) ":";
                                    sum += $(i + 1);
                            }
                    }
    
                    result = result sum;
                    print result;
            }
    ~
    
    A pak to spustit pomoci awk -f vypocet.awk a.txt b.txt.

    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.