abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 15:00 | Komunita

    O víkendu probíhá v Bostonu, a také virtuálně, konference LibrePlanet 2024 organizovaná nadací Free Software Foundation (FSF).

    Ladislav Hagara | Komentářů: 0
    dnes 13:22 | Nová verze

    Nová vývojová verze Wine 9.8 řeší mimo jiné chybu #3689 při instalaci Microsoft Office 97 nahlášenou v roce 2005.

    Ladislav Hagara | Komentářů: 0
    včera 13:11 | Nová verze

    Coppwr, tj. GUI nástroj pro nízkoúrovňové ovládání PipeWire, byl vydán v nové verzi 1.6.0. Zdrojové kódy jsou k dispozici na GitHubu. Instalovat lze také z Flathubu.

    Ladislav Hagara | Komentářů: 0
    2.5. 22:33 | Nová verze

    Byla vydána dubnová aktualizace aneb nová verze 1.89 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Vypíchnout lze, že v terminálu lze nově povolit vkládání kopírovaného textu stisknutím středního tlačítka myši. Ve verzi 1.89 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 19
    2.5. 21:22 | Nová verze

    Proton, tj. fork Wine integrovaný v Steam Play a umožňující v Linuxu přímo ze Steamu hrát hry určené pouze pro Windows, byl vydán ve verzi 9.0-1 (𝕏). Přehled novinek se seznamem nově podporovaných her na GitHubu. Aktuální přehled her pro Windows běžících díky Protonu také na Linuxu na stránkách ProtonDB.

    Ladislav Hagara | Komentářů: 2
    2.5. 19:33 | Nová verze

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

    Ladislav Hagara | Komentářů: 0
    2.5. 11:22 | Bezpečnostní upozornění

    Služba Dropbox Sign (původně HelloSign) pro elektronické podepisování smluv byla hacknuta.

    Ladislav Hagara | Komentářů: 3
    2.5. 11:00 | Nová verze

    Byla vydána nová major verze 8.0 textového editoru GNU nano (Wikipedie). Podrobný přehled novinek a oprav v oznámení v diskusním listu info-nano nebo v souboru ChangeLog na Savannah. Volbou --modernbindings (-/) lze povolit "moderní" klávesové zkratky: ^C kopírování, ^V vložení, ^Z vrácení zpět, … Tato volba je aktivována také pokud binárka s nano nebo link na ni začíná písmenem "e".

    Ladislav Hagara | Komentářů: 4
    1.5. 23:22 | IT novinky

    Před 60 lety, 1. května 1964, byl představen programovací jazyk BASIC (Beginners' All-purpose Symbolic Instruction Code).

    Ladislav Hagara | Komentářů: 23
    1.5. 22:22 | Nová verze

    Byla vydána nová verze 12.0 minimalistické linuxové distribuce (JeOS, Just enough Operating System) pro Kodi (dříve XBMC) a multimediálního centra LibreELEC (Libre Embedded Linux Entertainment Center). Jedná se o fork linuxové distribuce OpenELEC (Open Embedded Linux Entertainment Center). LibreELEC 12.0 přichází s Kodi 21.0 "Omega".

    Ladislav Hagara | Komentářů: 0
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (43%)
     (13%)
     (26%)
     (17%)
    Celkem 53 hlasů
     Komentářů: 8, poslední dnes 08:25
    Rozcestník

    Dotaz: Parsovani (Bash)

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