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 03:11 | Nová verze

    Byla vydána nová verze 2.55.0 distribuovaného systému správy verzí Git. Přispělo 100 vývojářů, z toho 33 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 20:22 | IT novinky

    Craig Loewen na blogu Microsoftu oznámil veřejnou preview verzi WSL kontejnerů, tj. linuxových kontejnerů ve Windows Subsystem for Linux (WSL). Spouští se příkazem wslc.exe.

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

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

    Ladislav Hagara | Komentářů: 0
    včera 12:55 | Nová verze

    Grafická aplikace Krokiet/Czkawka pro vyhledávání a odstraňovaní nepotřebných souborů (duplicitní soubory, prázdné složky, podobné obrázky, podobná videa, poškozené soubory a další) byla vydána ve verzi 12.0.0. Podrobný přehled novinek v příspěvku na Medium. Jedná se o poslední verzi frontendu Czkawka GTK nad Czkawka Core. Uživatelům se doporučuje migrovat na frontend Krokiet postavený nad frameworkem Slint. Představena byla aplikace Cedinia pro Android využívající Czkawka Core. Dostupná je jako APK pro ruční instalaci.

    Ladislav Hagara | Komentářů: 4
    včera 04:22 | Nová verze

    Po téměř třech letech od vydání verze 9 byla vydána nová verze 10 linuxové distribuce Mageia (Wikipedie). Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 1
    28.6. 04:00 | Zajímavý software

    Nourish (GitHub) je nový správce oken pro Linux. Tradiční plochy nahrazuje nekonečným plátnem a posouváním a přibližováním. Využívá vlastní kompozitor pro Wayland s názvem y5. Videoukázka.

    Ladislav Hagara | Komentářů: 5
    27.6. 15:33 | Komunita

    Po 20 letech a 17 otevřených (open source) krátkých filmech Blender Studio oznámilo plán na svůj první celovečerní film. Cílem samozřejmě není jenom nový otevřený film, ale především vývoj a vylepšení otevřených nástrojů pro spolupráci napříč celým procesem a vytvoření otevřené příručky (playbook) pro filmovou produkci ve velkém měřítku s informacemi, které jsou obvykle dostupné pouze uvnitř komerčních studií, a pomoci tak nezávislým tvůrcům překonat technické a organizační bariéry.

    Ladislav Hagara | Komentářů: 0
    27.6. 05:00 | Nová verze

    Byla vydána nová verze 26.6.25 svobodného multiplatformního video editoru Shotcut (Wikipedie) postaveného nad multimediálním frameworkem MLT. Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.

    Ladislav Hagara | Komentářů: 0
    26.6. 14:44 | IT novinky

    Apple bez varování odstranil ze svého obchodu sociální síť VKontaktě i další aplikace skupiny VK, jako je VK Music nebo VK Video [Novinky.cz].

    Ladislav Hagara | Komentářů: 19
    26.6. 14:22 | IT novinky

    V dubnu loňského roku představený poštovní klient Notion Mail bude 22. září ukončen.

    Ladislav Hagara | Komentářů: 3
    Které desktopové prostředí na Linuxu používáte?
     (11%)
     (7%)
     (2%)
     (17%)
     (31%)
     (4%)
     (6%)
     (2%)
     (16%)
     (26%)
    Celkem 2011 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník


    Dotaz: Parsovani (Bash)

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