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 01:33 | Zajímavý projekt

    Od 1. ledna 2026 jsou všechny publikace ACM (Association for Computing Machinery) a související materiály přístupné v její digitální knihovně. V rámci této změny je nyní digitální knihovna ACM nabízena ve dvou verzích: v základní verzi zdarma, která poskytuje otevřený přístup ke všem publikovaným výzkumům ACM, a v prémiové zpoplatněné verzi, která nabízí další služby a nástroje 'určené pro hlubší analýzu, objevování a organizační využití'.

    NUKE GAZA! 🎆 | Komentářů: 2
    včera 16:44 | IT novinky

    S koncem roku 2025 skončila standardní podpora operačního systému HP-UX (Hewlett Packard Unix).

    Ladislav Hagara | Komentářů: 5
    včera 14:33 | Nová verze

    K 1. lednu 2026 končí 70leté omezení majetkových autorských práv děl autorů zesnulých v roce 1955, viz 2026 in public domain. V americkém prostředí vstupují do public domain díla z roku 1930, viz Public Domain Day.

    |🇵🇸 | Komentářů: 1
    31.12. 15:00 | Nová verze

    Všem vše nejlepší do nového roku 2026.

    Ladislav Hagara | Komentářů: 10
    31.12. 13:33 | Zajímavý software

    Crown je multiplatformní open source herní engine. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT a GPLv3+. Byla vydána nová verze 0.60. Vyzkoušet lze online demo.

    Ladislav Hagara | Komentářů: 0
    31.12. 12:11 | Zajímavý článek

    Daniel Stenberg na svém blogu informuje, že po strncpy() byla ze zdrojových kódů curlu odstraněna také všechna volání funkce strcpy(). Funkci strcpy() nahradili vlastní funkcí curlx_strcopy().

    Ladislav Hagara | Komentářů: 6
    31.12. 03:00 | Nová verze

    Byla vydána nová verze 25.12.30 svobodného multiplatformního video editoru Shotcut (Wikipedie) postaveného nad multimediálním frameworkem MLT. Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.

    Ladislav Hagara | Komentářů: 0
    30.12. 18:55 | IT novinky

    Společnost Valve publikovala přehled To nej roku 2025 ve službě Steam aneb ohlédnutí za nejprodávanějšími, nejhranějšími a dalšími nej hrami roku 2025.

    Ladislav Hagara | Komentářů: 0
    30.12. 16:11 | Komunita

    Byly publikovány výsledky průzkumu mezi uživateli Blenderu uskutečněného v říjnu a listopadu 2025. Zúčastnilo se více než 5000 uživatelů.

    Ladislav Hagara | Komentářů: 0
    30.12. 03:33 | Bezpečnostní upozornění

    V dokumentově orientované databázi MongoDB byla nalezena a v upstreamu již opravena kritická bezpečností chyba CVE-2025-14847 aneb MongoBleed.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (0%)
     (0%)
     (0%)
     (14%)
     (57%)
     (14%)
     (0%)
     (0%)
     (29%)
     (43%)
    Celkem 7 hlasů
     Komentářů: 1, poslední dnes 06:15
    Rozcestník

    Dotaz: Zpracovani textu pomoci AWK

    1.3.2008 11:27 Adam Koutny
    Zpracovani textu pomoci AWK
    Přečteno: 360×
    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.