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

Byl vydán Mozilla Firefox 51.0. Z novinek lze upozornit například na upozorňování na přihlašování přes nešifrované spojení (HTTP), podporu pro přehrávání bezeztrátového formátu FLAC nebo podporu WebGL 2. Podrobné informace v poznámkách k vydání a na stránce věnované vývojářům. Řešeny jsou také bezpečnostní chyby.

Ladislav Hagara | Komentářů: 1
23.1. 17:25 | IT novinky

Do prodeje (Farnell) se dostal jednodeskový počítač Tinker Board (unboxing). Jedná se o konkurenci Raspberry Pi 3 od společnosti Asus. Porovnání (jpg) těchto počítačů například na CNXSoft. Cena Tinker Boardu je 55 £.

Ladislav Hagara | Komentářů: 15
23.1. 14:44 | Zajímavý projekt

Byla zveřejněna pravidla hackerské soutěže Pwn2Own 2017, jež proběhne od 15. do 17. března v rámci bezpečnostní konference CanSecWes ve Vancouveru. Soutěžit se bude o více než milion dolarů v pěti kategoriích. Letos se bude útočit i na Ubuntu. Jedná se již o 10. ročník této soutěže.

Ladislav Hagara | Komentářů: 2
23.1. 13:33 | Nová verze

Po sedmi měsících vývoje od vydání verze 5.7 byla vydána verze 5.8 (YouTube) toolkitu Qt. Z novinek lze zmínit například Qt Lite pro vestavěná zařízení. Nově jsou plně podporovány moduly Qt Wayland Compositor (YouTube) a Qt SCXML (YouTube). Současně byla vydána verze 4.2.1 integrovaného vývojového prostředí (IDE) Qt Creator.

Ladislav Hagara | Komentářů: 1
23.1. 11:52 | Pozvánky

Lednový Prague Containers Meetup se koná ve čtvrtek 26. ledna 2017 od 18:00 v Apiary, Pernerova 49, Praha 8. Přijďte se podívat na přednášky o Enterprise Kubernetes a Jenkins as a code.

little-drunk-jesus | Komentářů: 0
23.1. 11:40 | Pozvánky

Program letošního ročníku konference Prague PostgreSQL Developer Days, která se koná již 15. a 16. února 2017 na ČVUT FIT, Thákurova 9, Praha 6, byl dnes zveřejněn. Najdete ho na stránkách konference včetně anotací přednášek a školení. Registrace na konferenci bude otevřena zítra (24. ledna) v brzkých odpoledních hodinách.

TomasVondra | Komentářů: 0
22.1. 02:20 | Zajímavý článek

David Revoy, autor open source webového komiksu Pepper&Carrot nebo portrétu GNU/Linuxu, upozorňuje na svém blogu, že nový Inkscape 0.92 rozbíjí dokumenty vytvořené v předchozích verzích Inkscape. Problém by měl být vyřešen v Inkscape 0.92.2 [reddit].

Ladislav Hagara | Komentářů: 0
22.1. 02:02 | Komunita

Øyvind Kolås, hlavní vývojář grafických knihoven GEGL a babl, které využívá grafický program GIMP, žádá o podporu na Patreonu. Díky ní bude moci pracovat na vývoji na plný úvazek. Milník 1000 $, který by stačil na holé přežití, se již téměř podařilo vybrat, dalším cílem je dosažení 2500 $, které mu umožní běžně fungovat ve společnosti.

xkomczax | Komentářů: 12
21.1. 23:54 | Pozvánky

DevConf.cz 2017, již devátý ročník jedné z největších akcí zaměřených na Linux a open source ve střední Evropě, proběhne od pátku 27. ledna do neděle 29. ledna v prostorách Fakulty informačních technologií Vysokého učení technického v Brně. Na programu je celá řada zajímavých přednášek a workshopů. Letos je povinná registrace.

Ladislav Hagara | Komentářů: 0
21.1. 22:11 | Nová verze

Byla vydána verze 1.0.0 emulátoru terminálu Terminology postaveného nad EFL (Enlightenment Foundation Libraries). Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (12%)
 (2%)
 (72%)
 (3%)
 (11%)
Celkem 395 hlasů
 Komentářů: 39, poslední včera 19:30
Rozcestník
Reklama

Dotaz: vyber pojmenovanych hodnot

19.2.2012 17:45 honza.kouril
vyber pojmenovanych hodnot
Přečteno: 238×
dobry vecer,

mam takovyto soubor:
jmeno="pazout" vek=32 povolani="bez prace"
vek=70 poznamka="" povolani="v duchodu" jmeno="kadrnozkova"
druh="verny" vek=120 jmeno="jonatan" povolani="pes" 
a chtel bych z nej (nejspis awkem?) vypsat pouze policka "jmeno" a "vek", abych dostal:
jmeno="pazout" vek=32
jmeno="kadrnozkova" vek=70
jmeno="jonatan" vek=120
ale stale se nedari. prosim pomozte

diky

Odpovědi

19.2.2012 19:45 l4m4
Rozbalit Rozbalit vše Re: vyber pojmenovanych hodnot
Nejjednodušší je asi toto
while read x; do eval "$x"; echo jmeno=\""$jmeno"\" vek="$vek"; done <soubor
ale samozřejmě vede k problémům, pokud se v souboru objeví podezřelé věci... Na druhé straně escapování dat nespecifikuješ, takže těžko říci, co se může objevit a jak.
19.2.2012 20:29 honza.kouril
Rozbalit Rozbalit vše Re: vyber pojmenovanych hodnot
diky

ano toto je mozne reseni, ale mas pravdu - muze vest k problemum

ten priklad, ktery jsem uvedl, je znacne zjednoduseny. myslel jsem, ze je na to nejaky bezny postup, ktery mi neni dosud znam

ve skutecnosti mi jde o parsovani souboru s konfiguraci MikroTiku. a to konkretne tech, kde je namichano nekolik ruznych "akci" (fw, mangling, queueing, ...)

kazdopadne diky, zkusim jeste popatrat

19.2.2012 21:58 l4m4
Rozbalit Rozbalit vše Re: vyber pojmenovanych hodnot
Tak to se obávám, že bude s použitím elementárních unixových nástrojů trochu prasárna. Použil bych python, perl, ..., něco co má operaci typu findall s regulárními výrazy, kterou se ten řádek rozdělí na položky poměrně rozumně.
19.2.2012 22:16 Kit
Rozbalit Rozbalit vše Re: vyber pojmenovanych hodnot
Ten uvedený příklad vypadá náhodou docela dobře. Také jsem hledal různá řešení a většina z nich si vylámala zuby na mezeře v řetězci. Přitom zadání vypadá velmi jednoduše. Prostě jsem nenašel vhodný parser.

Možná by se dalo něco napsat v programu Flex, ale to bych asi nechal až jako poslední možnost.
19.2.2012 22:40 jekub
Rozbalit Rozbalit vše Re: vyber pojmenovanych hodnot
mozna blbost, ale couchdb
19.2.2012 23:03 Kit
Rozbalit Rozbalit vše Re: vyber pojmenovanych hodnot
Zas taková blbost to není. CouchDB používá formát JSON, který je požadovanému formátu docela podobný. Teď ještě najít vhodný parser JSONu, kterému by se daly vnutit jiné separátory.
20.2.2012 09:39 chochi | skóre: 29 | Praha
Rozbalit Rozbalit vše Re: vyber pojmenovanych hodnot
V awk by to nemel byt problem. Ono to jde i sedem:

$ cat test 
jmeno="pazout" vek=32 povolani="bez prace"
vek=70 poznamka="" povolani="v duchodu" jmeno="kadrnozkova"
druh="verny" vek=120 jmeno="jonatan" povolani="pes" 
$ sed -n 's/.*\(jmeno="[^"]*"\).*\(vek=[0-9]*\).*\|.*\(vek=[0-9]*\).*\(jmeno="[^"]*"\).*/\1\4 \2\3/p' < test
jmeno="pazout" vek=32
jmeno="kadrnozkova" vek=70
jmeno="jonatan" vek=120
Problem je, pokud by tech "zajimavych" hodnot bylo vic. Timhle zpusobem to jde napsat maximalne na tri hodnoty
20.2.2012 09:41 chochi | skóre: 29 | Praha
Rozbalit Rozbalit vše Re: vyber pojmenovanych hodnot
Chybka - jde to maximalne pro 2 hodnoty.
20.2.2012 10:08 chochi | skóre: 29 | Praha
Rozbalit Rozbalit vše Re: vyber pojmenovanych hodnot
awk:

$ cat test 
jmeno="pazout" vek=32 povolani="bez prace"
vek=70 poznamka="" povolani="v duchodu" jmeno="kadrnozkova"
druh="verny" vek=120 jmeno="jonatan" povolani="pes"
jmeno="jmeno1"
vek=77
nic
$ awk 'function extract(l, r) { if(match(l, r) != 0) v=substr(l, RSTART, RLENGTH); else v=""; return v } { jmeno=extract($0, "jmeno=\"[^\"]*\""); vek=extract($0, "vek=[0-9]*"); if(jmeno && vek) print jmeno " " vek;}' < test 
jmeno="pazout" vek=32
jmeno="kadrnozkova" vek=70
jmeno="jonatan" vek=120
Pak je moznost upravit to, pokud je jedna hodnota nalezena, nebo vsechny.
Josef Kufner avatar 20.2.2012 11:39 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: vyber pojmenovanych hodnot
Nejdříve to převeď na JSON:
sed -e 's/^/{ /' -e 's/$/ },/' \
    -e 's/ \([a-z]\+\)=/, \1:/g' \
    -e 's/^{,/{/' \
 > data.json
Pak doplň obalující [] a umázni poslední čárku. Nakonec v PHP si s tím už lehce poradíš:
#!/usr/bin/env php
<?php
$data = json_decode(file_get_contents('data.json'));
foreach ($data as $row) {
  echo 'jmeno="', $row['jmeno'], '" vek="', $row['vek'], "\"\n";
}
Hello world ! Segmentation fault (core dumped)
rADOn avatar 20.2.2012 13:41 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: vyber pojmenovanych hodnot
Vsupni data v prikladu jsou validni shell, cili neni potreba awk nerkuli php, staci nechat shell udelat praci.
while true ; do
    jmeno="N/A" vek="N/A"
    read  line
    test $? -gt 0 && exit 0
    eval $line
    echo jmeno=\"${jmeno}\" vek=${vek}
done
Pokud jsou v tom nejake paznaky zaescapovane neshelovym zpusobem tak to samozrejme nepujde ale mozna i tak bude jednodussi to usedovat nez psat parser v jnem jazyce. Plus, je tam shellovy eval takze zadne neosetrene vsupy!
"2^24 comments ought to be enough for anyone" -- CmdrTaco
20.2.2012 19:08 honza.kouril
Rozbalit Rozbalit vše Re: vyber pojmenovanych hodnot
panove ja vam velice dekuji za vasi pomoc a predevsim za inspiraci!

-honza

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.