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 00:11 | Zajímavý článek
Výrobce síťových prvků, společnost Netgear, spustila nový program, který slibuje vývojářům, expertům, ale i běžným uživatelům vyplacení finanční odměny za nalezení bezpečnostních chyby v jejich produktech. Za nalezení zranitelnosti v hardware, API nebo mobilní aplikaci nabízí odměnu od 150 do 15 tisíc dolarů (dle závažnosti).
Michal Makovec | Komentářů: 0
dnes 00:08 | Pozvánky

V sobotu 18.2. se v Praze v prostorách VŠE uskuteční od 9:30 již 4. ročník největší české konference o opensource redakčním systému WordPress(WP) - WordCamp Praha 2017.

… více »
smíťa | Komentářů: 0
včera 23:58 | Komunita
Kryptoměnová komunita zahájila nový rok spuštěním projektu Blockchain.cz, jehož cílem je kolektivně nalézt ideální překlad pro čím dál frekventovanější slovo „blockchain“. Přispět návrhem může kdokoli. Sběr bude trvat až do konce září 2017. Následně bude probíhat dvoutýdenní veřejné hlasování, které bude zakončeno výběrem toho nejlepšího návrhu.
xHire | Komentářů: 0
včera 15:55 | Bezpečnostní upozornění

Společnost Oracle vydala čtvrtletní bezpečnostní aktualizaci svých softwarových produktů (CPU, Critical Patch Update). Opraveno je celkově 270 bezpečnostních chyb. V Oracle Java SE je například opraveno 17 bezpečnostních chyb. Vzdáleně zneužitelných bez autentizace je 16 z nich. V Oracle MySQL je opraveno 27 bezpečnostních chyb. Vzdáleně zneužitelných bez autentizace je 5 z nich.

Ladislav Hagara | Komentářů: 0
včera 02:48 | Nová verze

Po půl roce od vydání verze 9.0 (zprávička) byla vydána verze 10.0 zvukového serveru PulseAudio. Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 26
včera 00:33 | Komunita Ladislav Hagara | Komentářů: 8
18.1. 17:30 | Zajímavý článek

Mozilla.cz informuje, že webový prohlížeč Firefox bude od verze 53 obsahovat integrovaný prohlížeč dat ve formátu JSON. Firefox kromě strukturovaného prohlížení nabídne také možnost filtrace a uložení na disk. Dle plánu by měl Firefox 53 vyjít 18. 4. 2017.

Ladislav Hagara | Komentářů: 1
18.1. 11:00 | Komunita

Členové a příznivci spolku OpenAlt se pravidelně schází v Praze a Brně. Fotky z pražských srazů za uplynulý rok si můžete prohlédnout na stránkách spolku. Příští sraz se koná už zítra 19. ledna – tentokrát je tématem ergonomie ovládání počítače – tzn. klávesnice, myši a další zařízení. Také budete mít příležitost si prohlédnout pražský hackerspace Brmlab.

xkucf03 | Komentářů: 1
17.1. 21:55 | Komunita

Nadace pro svobodný software (FSF) oznámila aktualizaci seznamu prioritních oblastí (changelog), na které by se měli vývojáři a příznivci svobodného softwaru zaměřit. Jsou to například svobodný operační systém pro chytré telefony, hlasová a video komunikace nebo softwarový inteligentní osobní asistent.

Ladislav Hagara | Komentářů: 20
17.1. 16:44 | Nová verze

Byla vydána verze 2.0.0 knihovny pro vykreslování grafů v programovacím jazyce Python Matplotlib (Wikipedie, GitHub). Přehled novinek a galerie grafů na stránkách projektu.

Ladislav Hagara | Komentářů: 0
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (10%)
 (2%)
 (74%)
 (3%)
 (11%)
Celkem 332 hlasů
 Komentářů: 24, poslední 17.1. 10:14
    Rozcestník
    Reklama

    Dotaz: Parsovani (Bash)

    31.5.2011 09:48 JK
    Parsovani (Bash)
    Přečteno: 607×
    Příloha:
    Dobry den,

    Mam v pc odkaz www stranky( viz. priloha ), ktera se aktualizuje kazdou hodinu. Je to odkaz na predpoved pocasi a potreboval bych z toho jenom vyriznout. DEN A TEPLOTU. Ze zdrojoveho kodu.

    Dekuju moc

    Odpovědi

    31.5.2011 12:49 ph0enix | skóre: 18 | Praha
    Rozbalit Rozbalit vše Re: Parsovani (Bash)
    Z jakeho duvodu to ma byt v shellu? Bude to priserve pomale a spatne se s tim bude pracovat. Radeji bych volil nejaky vyssi jazyk - Perl, Python, ...
    31.5.2011 13:03 Fešák Hubert
    Rozbalit Rozbalit vše Re: Parsovani (Bash)
    Jinak to cvicici neuzna:)
    31.5.2011 14:29 ph0enix | skóre: 18 | Praha
    Rozbalit Rozbalit vše Re: Parsovani (Bash)
    Takze domaci ukol :-) Muzes ukazat co mas hotove na cem se da stavet, nebo kde je problem?
    31.5.2011 18:47 ph0enix | skóre: 18 | Praha
    Rozbalit Rozbalit vše Re: Parsovani (Bash)
    man wget man bash man sed
    INFILE="http://adresa/dokument.html"
    
    wget -O - $INFILE | (
        # nejake promenne jenz mozna budeme potrebovat
        PROMENNA=
        ...
        
        while read LINE; do
            # budeme hledat pozadovana data a na zaklade jejich vyskytu neco podnikneme
            echo $LINE | grep -q 'co hledame'
            if [ $? -eq 0 ]; then
                # nalezeno - neco udelame
                ...
            else
                # nenalezeno - delej neco jineho
                ...
            fi
            ...
            
            # popripade si i neco updavime a zapamatujeme
            PROMENNA=`echo $LINE | sed -e 's/vzor/substituce/'`
            ...
            
            # a mozna i neco vypiseme
            printf "vystup"
        done
        )
    
    1.6.2011 18:45 ph0enix | skóre: 18 | Praha
    Rozbalit Rozbalit vše Re: Parsovani (Bash)
    Nez shell, to uz bych to radeji napsal v awk. Ikdyz nejelegantnejsi je, diky velmi dobre podpore regularnich vyrazu, reseni v PERLu prezentavane jiz v reakcich na tvuj predchozi dotaz.

    Tady mas bastl v shellu. Diky zpracovani po radcich to bude neskutecne poommmaaaallllleeeeee. Dej si alepon praci s tim pochopit co ktera cast dela nez to budes chtit prezentovat jako svuj vytvor :-(
    #!/usr/bin/bash
    #
    
    INFILE="http://www.abclinuxu.cz/data/prilohy/9/9/175399-pocasi-1837466145685031135.html"
    
    wget -O - $INFILE | (
        INDAY=0
    
        while read LINE; do
            if [ $INDAY -eq 1 ]; then
                if [ $PART -eq 0 ]; then
                    echo $LINE | grep -q 'div class="cLeft"'
                    if [ $? -eq 0 ]; then
                        PART=1
                    else
                        DAY=`echo $LINE | sed -e 's/.*<h4>\(.*\)<\/h4>.*/\1/'`
                    fi
                else
                    if [ $PART -eq 1 ]; then
                        echo $LINE | grep -q 'div class="cRight"'
                        if [ $? -eq 0 ]; then
                            PART=2
                        else
                            echo $LINE | grep -q ' title="'
                            if [ $? -eq 0 ]; then
                                DOP_TYP=`echo $LINE | sed -e 's/.* title="\(.*\)" .*/\1/'`
                            else
                                echo $LINE | grep -q '<p>.*<\/p>'
                                if [ $? -eq 0 ]; then
                                    DOP_TEMP=`echo $LINE | sed -e 's/.*<p>\(.*\)<\/p>.*/\1/'`
                                else
                                    echo $LINE | grep -q '>.*<\/a><'
                                    if [ $? -eq 0 ]; then
                                        DOP_LABEL=`echo $LINE | sed -e 's/.*>\(.*\)<\/a><br.*/\1/'`
                                    fi
                                fi
                            fi
                        fi
                    else
                        echo $LINE | grep -q '<\/div>'
                        if [ $? -eq 0 ]; then
                            printf "[$DAY]\n"
                            printf "\t$DOP_LABEL - $DOP_TYP - $DOP_TEMP\n"
                            printf "\t$ODP_LABEL - $ODP_TYP - $ODP_TEMP\n"
                            INDAY=0
                            PART=0
                            DAY=
                            DOP_LABEL=
                            DOP_TYP=
                            DOP_TEMP=
                            ODP_LABEL=
                            ODP_TYP=
                            ODP_TEMP=
                        else
                            echo $LINE | grep -q ' title="'
                            if [ $? -eq 0 ]; then
                                ODP_TYP=`echo $LINE | sed -e 's/.* title="\(.*\)" .*/\1/'`
                            else
                                echo $LINE | grep -q '<p>.*<\/p>'
                                if [ $? -eq 0 ]; then
                                    ODP_TEMP=`echo $LINE | sed -e 's/.*<p>\(.*\)<\/p>.*/\1/'`
                                else
                                    echo $LINE | grep -q '>.*<\/a><'
                                    if [ $? -eq 0 ]; then
                                        ODP_LABEL=`echo $LINE | sed -e 's/.*>\(.*\)<\/a><br.*/\1/'`
                                    fi
                                fi
                            fi
                        fi
                    fi
                fi
            else
                echo $LINE | grep -q 'div class="cDay"'
                if [ $? = 0 ]; then
                    INDAY=1
                    PART=0
                    DAY=
                    DOP_LABEL=
                    DOP_TYP=
                    DOP_TEMP=
                    ODP_LABEL=
                    ODP_TYP=
                    ODP_TEMP=
                fi
            fi
        done
        )
    
    31.5.2011 14:01 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Parsovani (Bash)
    Vy jste to za ten týden ještě nevyřešil? V tom případě ukažte kam jste dospěl (zdrojový kód) a nějak to už doladíme. Předpokládám že alespoň pár řádek jste napsal... Víte už jakým nástrojem to budete dělat? V Bash budete potřebovat něco na stažení, asi wget, potom něco na parsování, třeba sed nebo awk.

    Znáte některý z těchto nástrojů? Víte jak se v bash předávají data mezi jednotlivými nástroji? Pro jednoduchost vám doporučuji stáhnout stránku wgetem, a následně parsovat stažený soubor. Až nebudete vědět jak dál, podělte se o váš výsledek.
    31.5.2011 14:32 NN
    Rozbalit Rozbalit vše Re: Parsovani (Bash)
    Vy jste to za ten týden ještě nevyřešil?
    lol
    1.6.2011 09:49 NeoV | skóre: 23
    Rozbalit Rozbalit vše Re: Parsovani (Bash)
    No, chalan ten isty dotaz uz zadaval 25.5. :-) ==>

    http://www.abclinuxu.cz/poradna/linux/show/336314

    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.