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 08:00 | Komunita

    Projekt GNU dnes slaví 40. výročí. Přesně před čtyřiceti lety, 27. září 1983, Richard Stallman oznámil, že se chystá napsat s Unixem kompatibilní operační systém GNU (Gnu's Not Unix). Hlavní oslava a setkání hackerů probíhá ve Švýcarsku ve městě Biel/Bienne. Na programu je také přednáška Richarda Stallmana.

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

    Byl vydán Mozilla Firefox 118.0. Přehled novinek v poznámkách k vydání, poznámkách k vydání pro firmy a na stránce věnované vývojářům. Vypíchnout je nutno automatický lokální strojový překlad webových stránek. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 118 je již k dispozici také na Flathubu a Snapcraftu.

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

    Byla vydána nová major verze 15.0.0 softwaru OCRmyPDF pro přidávání textové vrstvy k naskenovaným PDF dokumentům (PDF/A). Přehled novinek v poznámkách k vydání. OCRmyPDF využívá pro optické rozpoznávání znaků (OCR) engine Tesseract.

    Ladislav Hagara | Komentářů: 6
    včera 12:22 | Zajímavý software

    Karel Matějka zveřejnil druhé demo své chystané hry Bzzzt. Kromě verze pro Windows a macOS je dostupná i verze pro Linux. Plná verze hry má vyjít zanedlouho.

    Ondřej J | Komentářů: 4
    25.9. 20:33 | IT novinky

    Noví Bulánci byli oficiálně vydáni. V roce 2021 bylo na Startovači na podporu vývoje této hry vybráno 7,3 miliónů Kč. Hra je zatím určena jenom pro Windows, díky Protonu ale běží také na Linuxu.

    Ladislav Hagara | Komentářů: 8
    25.9. 14:55 | IT novinky

    ChatGPT může vidět, slyšet a mluvit.

    Ladislav Hagara | Komentářů: 4
    25.9. 14:33 | Zajímavý software

    Upscaler je open source nástroj pro zvýšení rozlišení a vylepšení obrázků pomocí AI. Vývoj probíhá na GitLabu. Instalovat lze také z Flathubu. Stejně jako Upscayl je Upscaler postaven nad Real-ESRGAN.

    Ladislav Hagara | Komentářů: 1
    25.9. 12:11 | Nová verze

    GNUnet (Wikipedie) byl vydán v nové major verzi 0.20.0. Jedná se o framework pro decentralizované peer-to-peer síťování, na kterém je postavena řada aplikací.

    Ladislav Hagara | Komentářů: 0
    25.9. 11:55 | Komunita

    V Dublinu o víkendu proběhla dvanáctá iterace multimediální konference Video Dev Days, kterou pravidelně pořádá nezisková organizace VideoLAN. Záznamy přednášek z prvního a druhého dne jsou dostupné na YouTube.

    elenril | Komentářů: 0
    24.9. 20:44 | Nová verze

    LibrePCB, tj. svobodný multiplatformní softwarový nástroj pro návrh desek plošných spojů (PCB), dospěl po pěti letech vývoje do verze 1.0.0. Přehled novinek v příspěvku na blogu a v aktualizované dokumentaci. Zdrojové kódy jsou k dispozici na GitHubu pod licencí GPLv3.

    Ladislav Hagara | Komentářů: 0
    Knihy s linuxovou tematikou
     (19%)
     (15%)
     (51%)
     (27%)
    Celkem 277 hlasů
     Komentářů: 11, poslední 17.9. 19:19
    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: 436×
    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.