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í
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
dnes 22:44 | Komunita

Joinup informuje, že Mnichov používá open source groupware Kolab. V srpnu byl dokončen dvouletý přechod na toto řešení. V provozu je asi 60 000 poštovních schránek. Nejenom Kolabu se věnoval Georg Greve ve své přednášce Open Source: the future for the European institutions (SlideShare) na konferenci DIGITEC 2016, jež proběhla v úterý 29. listopadu v Bruselu. Videozáznam přednášek z hlavního sálu je ke zhlédnutí na Livestreamu.

Ladislav Hagara | Komentářů: 1
dnes 15:30 | Zajímavý projekt

Společnost Jolla oznámila v příspěvku Case study: Sailfish Watch na svém blogu, že naportovala Sailfish OS na chytré hodinky. Využila a inspirovala se otevřeným operačním systémem pro chytré hodinky AsteroidOS. Použita je knihovna libhybris. Ukázka ovládání hodinek na YouTube.

Ladislav Hagara | Komentářů: 2
dnes 14:15 | Nová verze

Byla vydána verze 7.1.0 skriptovacího jazyka PHP používaného zejména k vývoji dynamických webových stránek. Jedná se o první stabilní verzi nejnovější větvě 7.1. Přehled novinek v dokumentaci. Podrobnosti v ChangeLogu. K dispozici je také příručka pro přechod z PHP 7.0.x na PHP 7.1.x.

Ladislav Hagara | Komentářů: 0
dnes 12:55 | Nová verze

Google Chrome 55 byl prohlášen za stabilní. Nejnovější stabilní verze 55.0.2883.75 tohoto webového prohlížeče přináší řadu oprav a vylepšení (YouTube). Opraveno bylo také 36 bezpečnostních chyb. Mariusz Mlynski si například vydělal 22 500 dolarů za 3 nahlášené chyby (Universal XSS in Blink).

Ladislav Hagara | Komentářů: 4
dnes 11:55 | Pozvánky

Máte rádi svobodný software a hardware nebo se o nich chcete něco dozvědět? Přijďte na 135. sraz spolku OpenAlt, který se bude konat ve čtvrtek 8. prosince od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Sraz bude tentokrát tématický. Bude retro! K vidění budou přístroje jako Psion 5mx nebo Palm Z22. Ze svobodného hardwaru pak Openmoko nebo čtečka WikiReader. Přijďte se i vy pochlubit svými legendami, nebo alespoň na pivo. Moderní hardware má vstup samozřejmě také povolen.

xkucf03 | Komentářů: 0
dnes 00:10 | Nová verze

Byla vydána verze 3.2 svobodného systému pro detekci a prevenci průniků a monitorování bezpečnosti počítačových sítí Suricata. Z novinek lze zmínit například podporu protokolů DNP3 a CIP/ENIP, vylepšenou podporu TLS a samozřejmě také aktualizovanou dokumentaci.

Ladislav Hagara | Komentářů: 0
včera 21:00 | Nová verze

Byla vydána beta verze Linux Mintu 18.1 s kódovým jménem Serena. Na blogu Linux Mintu jsou hned dvě oznámení. První o vydání Linux Mintu s prostředím MATE a druhé o vydání Linux Mintu s prostředím Cinnamon. Stejným způsobem jsou rozděleny také poznámky k vydání (MATE, Cinnamon) a přehled novinek s náhledy (MATE, Cinnamon). Linux Mint 18.1 bude podporován až do roku 2021.

Ladislav Hagara | Komentářů: 0
včera 16:42 | Nová verze

Byl vydán Devuan Jessie 1.0 Beta 2. Jedná se o druhou beta verzi forku Debianu bez systemd představeného v listopadu 2014 (zprávička). První beta verze byla vydána v dubnu letošního roku (zprávička). Jedna z posledních přednášek věnovaných Devuanu proběhla v listopadu na konferenci FSCONS 2016 (YouTube, pdf).

Ladislav Hagara | Komentářů: 0
včera 15:16 | Komunita

Na GOG.com začal zimní výprodej. Řada zlevněných her běží oficiálně také na Linuxu. Hru Neverwinter Nights Diamond lze dva dny získat zdarma. Hra dle stránek GOG.com na Linuxu neběží. Pomocí návodu ji lze ale rozběhnout také na Linuxu [Gaming On Linux].

Ladislav Hagara | Komentářů: 1
včera 13:14 | Bezpečnostní upozornění

Byla vydána verze 2.7.1 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Řešeno je několik bezpečnostních problémů. Aktualizován byl především Tor Browser na verzi 6.0.7. Tor Browser je postaven na Firefoxu ESR (Extended Support Release) a právě ve Firefoxu byla nalezena a opravena vážná bezpečnostní chyba MFSA 2016-92 (CVE-2016-9079, Firefox SVG Animation

… více »
Ladislav Hagara | Komentářů: 0
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (24%)
 (29%)
 (7%)
 (5%)
 (3%)
Celkem 759 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

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

4.12.2014 11:45 Fibi86
AWK a csv- třídění do několika souborů
Přečteno: 354×
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: 36 | 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
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: 66
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: 36 | 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
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: 35
Rozbalit Rozbalit vše Re: AWK a csv- třídění do několika souborů
... ale pouzivas netcat...
4.12.2014 19:16 Fibi86
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: 35
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: 36 | 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: 53 | 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.
GentooFedoraSCRAM – Jsem open source vývojář, nikoli markeťák ⇒ názory zde uvedené jsou jen mé vlastní.
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: 53 | 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.
GentooFedoraSCRAM – Jsem open source vývojář, nikoli markeťák ⇒ názory zde uvedené jsou jen mé vlastní.
Josef Kufner avatar 5.12.2014 21:51 Josef Kufner | skóre: 66
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: 53 | 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.
GentooFedoraSCRAM – Jsem open source vývojář, nikoli markeťák ⇒ názory zde uvedené jsou jen mé vlastní.
Josef Kufner avatar 6.12.2014 01:00 Josef Kufner | skóre: 66
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: 66
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
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: 66
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
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: 66
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
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: 66
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
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: 36 | 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
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: 36 | 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
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: 36 | 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
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.