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

    Byla vydána nová verze 2025.4 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem nových nástrojů v oficiálním oznámení na blogu.

    Ladislav Hagara | Komentářů: 0
    dnes 12:44 | IT novinky

    Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) zveřejnil Národní politiku koordinovaného zveřejňování zranitelností (pdf), jejímž cílem je nejen zvyšování bezpečnosti produktů informačních a komunikačních technologií (ICT), ale také ochrana objevitelů zranitelností před negativními právními dopady. Součástí je rovněž vytvoření „koordinátora pro účely CVD“, jímž je podle nového zákona o kybernetické … více »

    Ladislav Hagara | Komentářů: 4
    dnes 04:33 | Nová verze

    Vývojáři KDE oznámili vydání balíku aplikací KDE Gear 25.12. Přehled novinek i s náhledy a videi v oficiálním oznámení.

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

    Společnost System76 vydala Pop!_OS 24.04 LTS s desktopovým prostředím COSMIC. Videoukázky na YouTube.

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

    Byla vydána verze 1.92.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    dnes 01:33 | Komunita

    Free Software Foundation zveřejnila ocenění Free Software Awards za rok 2024. Oceněni byli Andy Wingo, jeden ze správců GNU Guile, Alx Sa za příspěvky do Gimpu a Govdirectory jako společensky prospěšný projekt.

    |🇵🇸 | Komentářů: 3
    včera 18:55 | Nová verze

    Bylo vydáno Eclipse IDE 2025-12 aneb Eclipse 4.38. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.

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

    U příležitosti oslav osmi let prací na debianím balíčku vyšlo GPXSee 15.6. Nová verze přináší především podporu pro geotagované MP4 soubory, včetně GoPro videí. Kdo nechce čekat, až nová verze dorazí do jeho distribuce, nalezne zdrojové kódy na GitHubu.

    Martin Tůma | Komentářů: 15
    včera 09:22 | Nová verze

    Monado, tj. multiplatformní open source implementace standardu OpenXR specifikujícího přístup k platformám a zařízením pro XR, tj. platformám a zařízením pro virtuální realitu (VR) a rozšířenou realitu (AR), bylo vydáno ve verzi 25.1.0. Přehled novinek v poznámkách k vydání.

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

    Byla vydána listopadová aktualizace aneb nová verze 1.107 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.107 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 0
    Jaké řešení používáte k vývoji / práci?
     (34%)
     (47%)
     (19%)
     (17%)
     (22%)
     (15%)
     (24%)
     (15%)
     (17%)
    Celkem 459 hlasů
     Komentářů: 19, poslední včera 20:04
    Rozcestník

    Dotaz: Parsovani (Bash)

    31.5.2011 09:48 JK
    Parsovani (Bash)
    Přečteno: 796×
    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.