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

    OpenJS Foundation, oficiální projekt konsorcia Linux Foundation, oznámila vydání verze 22 otevřeného multiplatformního prostředí pro vývoj a běh síťových aplikací napsaných v JavaScriptu Node.js (Wikipedie). V říjnu se verze 22 stane novou aktivní LTS verzí. Podpora je plánována do dubna 2027.

    Ladislav Hagara | Komentářů: 0
    dnes 04:22 | Nová verze

    Byla vydána verze 8.2 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a v informačním videu. Zdůrazněn je průvodce migrací hostů z VMware ESXi do Proxmoxu.

    Ladislav Hagara | Komentářů: 0
    dnes 04:11 | Nová verze

    R (Wikipedie), programovací jazyk a prostředí určené pro statistickou analýzu dat a jejich grafické zobrazení, bylo vydáno ve verzi 4.4.0. Její kódové jméno je Puppy Cup.

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

    IBM kupuje společnost HashiCorp (Terraform, Packer, Vault, Boundary, Consul, Nomad, Waypoint, Vagrant, …) za 6,4 miliardy dolarů, tj. 35 dolarů za akcii.

    Ladislav Hagara | Komentářů: 4
    včera 15:55 | Nová verze

    Byl vydán TrueNAS SCALE 24.04 “Dragonfish”. Přehled novinek této open source storage platformy postavené na Debianu v poznámkách k vydání.

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

    Oznámeny byly nové Raspberry Pi Compute Module 4S. Vedle původní 1 GB varianty jsou nově k dispozici také varianty s 2 GB, 4 GB a 8 GB paměti. Compute Modules 4S mají na rozdíl od Compute Module 4 tvar a velikost Compute Module 3+ a předchozích. Lze tak provést snadný upgrade.

    Ladislav Hagara | Komentářů: 0
    včera 04:44 | Nová verze

    Po roce vývoje od vydání verze 1.24.0 byla vydána nová stabilní verze 1.26.0 webového serveru a reverzní proxy nginx (Wikipedie). Nová verze přináší řadu novinek. Podrobný přehled v souboru CHANGES-1.26.

    Ladislav Hagara | Komentářů: 0
    včera 04:33 | Nová verze

    Byla vydána nová verze 6.2 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Přehled změn v příslušném seznamu. Tor Browser byl povýšen na verzi 13.0.14.

    Ladislav Hagara | Komentářů: 0
    včera 04:22 | Nová verze

    Byla vydána nová verze 30.0.0 frameworku pro vývoj multiplatformních desktopových aplikací pomocí JavaScriptu, HTML a CSS Electron (Wikipedie, GitHub). Chromium bylo aktualizováno na verzi 124.0.6367.49, V8 na verzi 12.4 a Node.js na verzi 20.11.1. Electron byl původně vyvíjen pro editor Atom pod názvem Atom Shell. Dnes je na Electronu postavena celá řada dalších aplikací.

    Ladislav Hagara | Komentářů: 2
    včera 04:11 | Nová verze

    Byla vydána nová verze 9.0.0 otevřeného emulátoru procesorů a virtualizačního nástroje QEMU (Wikipedie). Přispělo 220 vývojářů. Provedeno bylo více než 2 700 commitů. Přehled úprav a nových vlastností v seznamu změn.

    Ladislav Hagara | Komentářů: 0
    KDE Plasma 6
     (72%)
     (9%)
     (2%)
     (17%)
    Celkem 731 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Dotaz: AWK a csv- třídění do několika souborů

    4.12.2014 11:45 Fibi86 | skóre: 1
    AWK a csv- třídění do několika souborů
    Přečteno: 461×
    Zdravím, snažím se naučiti v AWK a řeším následující problém. Mám jeden csv soubor, který obsahuje mnoho řádků které se neustále plní. Já bych potřeboval řádky podle pole id překopírovat do nového souboru, přes který následně data nahraji do databáze.
    Příklad:
    Online.csv
    --------------- Karel,on,123456,id35,aaa
    Marek,off,12345,id27,bbb
    Karel,off,1232,id35,aaa

    Karel.csv
    ----------------
    on,123456,aaa
    off,1232,aaa

    Marek.csv
    ----------------
    off,12345,bbb
    V souboru Online.csv bych potřeboval zda by awk mohl překopírovaný řádek smazat, aby při dalším spuštění nedošlo k dupicitě. Děkuji všem GURU za radu. Fibi

    Odpovědi

    4.12.2014 12:00 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: AWK a csv- třídění do několika souborů
    Jednodušší by bylo nestrkat data místo do souboru Online.csv, ale přímo do AWK. Nebudeš pak muset řešit žádné duplicity.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    4.12.2014 12:29 Fibi86 | skóre: 1
    Rozbalit Rozbalit vše Re: AWK a csv- třídění do několika souborů

    To by byla mozna nejlepsi cesta.

    V soucasne dobe pouzivam netcat ktery data nasloucha na udp portu:

    nc -l -p 10000 -u >/Onlene.csv
    Jak ho mohu prinutit do AWK?
    Diky
    Josef Kufner avatar 4.12.2014 12:38 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: AWK a csv- třídění do několika souborů
    Jak moc chceš mít záznam dat spolehlivý?

    Jinak AWK můžeš napojit na netcat obyčejnou rourou: nc ... | awk ...
    Hello world ! Segmentation fault (core dumped)
    4.12.2014 12:45 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: AWK a csv- třídění do několika souborů
    nc -l -p 10000 -u | awk -F\, '{print $0 > $1}'
    
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    4.12.2014 13:03 Fibi86 | skóre: 1
    Rozbalit Rozbalit vše Re: AWK a csv- třídění do několika souborů
    Díky, otestuji. Spolehlivost musí být bohužel 100%. Fibi
    4.12.2014 15:27 GeorgeWH | skóre: 42
    Rozbalit Rozbalit vše Re: AWK a csv- třídění do několika souborů
    ... ale pouzivas netcat...
    4.12.2014 19:16 Fibi86 | skóre: 1
    Rozbalit Rozbalit vše Re: AWK a csv- třídění do několika souborů
    Je teda něco lepšího? ;-)
    4.12.2014 20:25 GeorgeWH | skóre: 42
    Rozbalit Rozbalit vše Re: AWK a csv- třídění do několika souborů
    napr. napisat si vlastny skript (v ktorom sa daju osetrit rozne vzniknute stavy) a pouzit sofistikovane nastroje, ktore zaistia jeho spustanie/vypinanie (ako bolo spomenute nizsie)...
    4.12.2014 20:40 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: AWK a csv- třídění do několika souborů
    Na dekorace má času dost.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    5.12.2014 15:31 marek
    Rozbalit Rozbalit vše Re: AWK a csv- třídění do několika souborů
    Dobry den.

    100% spolehlivost na UDP je protimluv!

    Pokud to ma byt spolehlive (je mozne alespon detekovat chybu), pak pouzijte TCP.

    Marek
    pavlix avatar 5.12.2014 15:40 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: AWK a csv- třídění do několika souborů
    Myslím, že jak u UDP, tak u TCP především záleží na tom, jak se použije.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    5.12.2014 16:03 marek
    Rozbalit Rozbalit vše Re: AWK a csv- třídění do několika souborů

    V kontextu dotazu je podle me UDP zle, TCP hodne.

    Marek
    pavlix avatar 5.12.2014 16:42 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: AWK a csv- třídění do několika souborů
    Jo, to rozhodně a při použití netcatu o to víc.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    Josef Kufner avatar 5.12.2014 21:51 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: AWK a csv- třídění do několika souborů
    No, když se podívám na XMPP a jak vesele ztrácí zprávy (a XEP-0198 se dodnes používá jen málo). Ani to TCP to nezachrání.
    Hello world ! Segmentation fault (core dumped)
    pavlix avatar 6.12.2014 00:40 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: AWK a csv- třídění do několika souborů
    Myslím, že už jsme se o tom bavili a že za za ztrácení zpráv TCP nemůže.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    Josef Kufner avatar 6.12.2014 01:00 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: AWK a csv- třídění do několika souborů
    To netvrdím. To byla jen ukázka, že i "spolehlivý" protokol lze použít špatně.
    Hello world ! Segmentation fault (core dumped)
    Josef Kufner avatar 4.12.2014 12:36 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: AWK a csv- třídění do několika souborů
    Mazání není nijak jednoduché. Radši změň způsob práce s těmi daty.

    Předpokládám, že pokud by bylo snadné upravit generující program, aby rovnou zapisoval do databáze, netrápil by jsi se s CSV.

    Mimochodem, AWK neumí správně parsovat CSV, neboť tento formát je na něj příliš složitý a rozbije se to, jakmile se objeví složitější řetězce. CSV není jen o čárce jako oddělovači, ale i o uvozovkách.

    Pokud je soubor plněn způsobem "otevřít-připsat-zavřít", můžeš použít logrotate. Jednou za čas (např. 10 minut) nechat provést rotaci, tím se nová data odloží stranou a vyrobí se prázdný soubor pro budoucí data. Odložená data pak můžeš v klidu zpracovat na jeden průchod, aniž by se ti měnila pod rukama.

    Druhá možnost je nechat Online.csv sledovat pomocí tail -F a jeho výstup předat ke zpracování. Zde však hrozí, že se občas nějaký záznam ztratí, pokud se se souborem budou dít ošklivé věci, nebo bude jakkoliv narušen plynulý běh obou aplikací.
    Hello world ! Segmentation fault (core dumped)
    4.12.2014 13:02 Fibi86 | skóre: 1
    Rozbalit Rozbalit vše Re: AWK a csv- třídění do několika souborů
    Děkuji za reakci. Přes nc bude na server chodit každých 5s řetězec, který naštěstí neobsahuje žádné příšernosti, max. Tečku, čísla a pár znaků. Následné zpracováni mám v plánu řešit přes mysqlimport, který data nahraje a poté by se soubor vyprázdnil např. z 1/3 aby nedošlo k nějakému úniku a znovuspuštění mysqlimport by duplicitu v databázi přeskočil. Bohužel není možné riskovat že se tam např. Jeden řádek nedostane. AWK zatím s exportem do databáze (přeformátováním cca 30ti sloupců) nemá problém. Zařízení které data posílá na server se bohužel nedá modifikovat. Fibi
    Josef Kufner avatar 4.12.2014 13:27 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: AWK a csv- třídění do několika souborů
    A proč nespustíš mysqlimport už na tom vzdáleném stroji? Nebo rovnou spouštět jen mysql s voláním uložené procedury, která to bude třídit dle potřeby.
    Hello world ! Segmentation fault (core dumped)
    4.12.2014 13:51 Fibi86 | skóre: 1
    Rozbalit Rozbalit vše Re: AWK a csv- třídění do několika souborů
    Vzdálené zařízení je "blackbox" který pouze posílá daný řetězec na určitou ip.. Myslíš ten mysql spouštět tady na tom lokálním stroji? Díky Fibi
    Josef Kufner avatar 4.12.2014 15:30 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: AWK a csv- třídění do několika souborů
    Aha, tak to je pak jiná.

    Namísto netcat bych použil inetd a nechal ho spouštět jednoduchý script, který rovnou předá data do mysql. Data se nebudou ztrácet, pokud script s nc zrovna upadne nebo se na něčem zdrží. Inetd bude držet posluchací socket trvale otevřený a obslouží toho tak daleko více a paralelně než nc, které je v tomhle spíš na jednorázové přenosy.
    Hello world ! Segmentation fault (core dumped)
    4.12.2014 20:16 Fibi86 | skóre: 1
    Rozbalit Rozbalit vše Re: AWK a csv- třídění do několika souborů
    A je možné mě "nakopnout" jak xinetd donutit spouštět onen script? Pátrám pátrám a zatím v tom plavu. Děkuji za radu.
    Josef Kufner avatar 4.12.2014 21:38 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: AWK a csv- třídění do několika souborů
    inetd a xinetd fungují tak, že poslouchají na socketu a jakmile přijde spojení, spustí obslužný script a data mu předají na stdin, odpověď pak předávají zpět z stdout. Je to tedy v podstatě velmi podobné klasickému CGI.

    Ty potřebuješ jen nastavit port, protokol a obslužný script. V klasickém inetd bude tvoje konfigurace vypadat asi nějak takto:
    10000 dgram udp nowait nobody /usr/local/bin/tvuj-script
    Pro xinetd to bude podobné, jen syntaxe se liší:
    service tvuj-script
    {
      port = 10000
      socket_type = dgram
      protocol = udp
      wait = no
      user = nobody
      server = /usr/local/bin/tvuj-script
      instances = 10
    }
    (Nezkoušel jsem, zda to funguje, ani to nepoužívám nijak často, takže tam asi bude třeba pár úprav.)
    Hello world ! Segmentation fault (core dumped)
    4.12.2014 23:42 Fibi86 | skóre: 1
    Rozbalit Rozbalit vše Re: AWK a csv- třídění do několika souborů
    Tak zatim se mi dari sloucit par prikazu a chtel bych preci jen vyuzit AWK a tridit radky dle id pole do ruznych souboru. Ve finale vse otestuji pomoci inetd... Nekdo nejake tipy jak na to trideni? Dekuji
    5.12.2014 07:26 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: AWK a csv- třídění do několika souborů
    Však v tom mém příkladu máš i třídění.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    5.12.2014 17:21 Fibi86 | skóre: 1
    Rozbalit Rozbalit vše Re: AWK a csv- třídění do několika souborů
    No ja bych spise potreboval syntaxi: pokud v poli c.4 bude id35, zapis radek do souboru Karel.csv... Diky za radu.
    5.12.2014 22:43 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: AWK a csv- třídění do několika souborů
    To už nevypadá tak elegantně, ale budiž:
    awk -F\,  'BEGIN { OFS = ","; }
        $4 ~ /id35/ { print $2, $3, $5 >> "Karel.csv"; next; }
        $4 ~ /id27/ { print $2, $3, $5 >> "Marek.csv"; next; }' < Online.csv
    
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    8.12.2014 20:26 Fibi86 | skóre: 1
    Rozbalit Rozbalit vše Re: AWK a csv- třídění do několika souborů
    Super, funguje perfektne. Byla by jeste rada jak ten zkopirovany radek z prvniho souboru smazat? Soubor se stale plni a zbytecne zabira misto. Stacilo by teda radek "presunout". Diky
    8.12.2014 20:42 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: AWK a csv- třídění do několika souborů
    Však to pošli rovnou z trubky.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    8.12.2014 21:01 Fibi86 | skóre: 1
    Rozbalit Rozbalit vše Re: AWK a csv- třídění do několika souborů
    To se mi právě nedaří :-(

    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.