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í
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
dnes 12:00 | Zajímavý projekt

Projekt Termbox umožňuje vyzkoušet si linuxové distribuce Ubuntu, Debian, Fedora, CentOS a Arch Linux ve webovém prohlížeči. Řešení je postaveno na projektu HyperContainer. Podrobnosti v často kladených dotazech (FAQ). Zdrojové kódy jsou k dispozici na GitHubu [reddit].

Ladislav Hagara | Komentářů: 0
dnes 11:00 | Bezpečnostní upozornění

Byly zveřejněny informace o bezpečnostní chybě CVE-2016-8655 v Linuxu zneužitelné k lokální eskalaci práv. Chyba se dostala do linuxového jádra v srpnu 2011. V upstreamu byla opravena minulý týden [Hacker News].

Ladislav Hagara | Komentářů: 0
včera 22:00 | Komunita

Přibližně před měsícem bylo oznámeno, že linuxová distribuce SUSE Linux Enterprise Server (SLES) běží nově také Raspberry Pi 3 (dokumentace). Obraz verze 12 SP2 pro Raspberry Pi 3 je ke stažení zdarma. Pro registrované jsou po dobu jednoho roku zdarma také aktualizace. Dnes bylo oznámeno, že pro Raspberry Pi 3 je k dispozici také nové openSUSE Leap 42.2 (zprávička). K dispozici je hned několik obrazů.

Ladislav Hagara | Komentářů: 5
včera 06:00 | Zajímavý software

OMG! Ubuntu! představuje emulátor terminálu Hyper (GitHub) postavený na webových technologiích (HTML, CSS a JavaScript). V diskusi k článku je zmíněn podobný emulátor terminálu Black Screen. Hyper i Black Screen používají framework Electron, stejně jako editor Atom nebo vývojové prostředí Visual Studio Code.

Ladislav Hagara | Komentářů: 31
včera 06:00 | Zajímavý článek

I letos vychází řada ajťáckých adventních kalendářů. QEMU Advent Calendar 2016 přináší každý den nový obraz disku pro QEMU. Programátoři se mohou potrápit při řešení úloh z kalendáře Advent of Code 2016. Kalendáře Perl Advent Calendar 2016 a Perl 6 Advent Calendar přinášejí každý den zajímavé informace o programovacím jazyce Perl. Stranou nezůstává ani programovací jazyk Go.

Ladislav Hagara | Komentářů: 9
3.12. 16:24 | Nová verze

Byla vydána Mageia 5.1. Jedná se o první opravné vydání verze 5, jež vyšla v červnu loňského roku (zprávička). Uživatelům verze 5 nepřináší opravné vydání nic nového, samozřejmě pokud pravidelně aktualizují. Vydání obsahuje všechny aktualizace za posledního téměř půldruhého roku. Mageia 5.1 obsahuje LibreOffice 4.4.7, Linux 4.4.32, KDE4 4.14.5 nebo GNOME 3.14.3.

Ladislav Hagara | Komentářů: 17
3.12. 13:42 | Pozvánky

V Praze probíhá konference Internet a Technologie 16.2, volné pokračování jarní konference sdružení CZ.NIC. Konferenci lze sledovat online na YouTube. K dispozici je také archiv předchozích konferencí.

Ladislav Hagara | Komentářů: 0
2.12. 22:44 | Komunita

Joinup informuje, že Mnichov používá open source groupware Kolab. V srpnu byl dokončen dvouletý přechod na toto řešení. V provozu je asi 60 000 poštovních schránek. Nejenom Kolabu se věnoval Georg Greve ve své přednášce Open Source: the future for the European institutions (SlideShare) na konferenci DIGITEC 2016, jež proběhla v úterý 29. listopadu v Bruselu. Videozáznam přednášek z hlavního sálu je ke zhlédnutí na Livestreamu.

Ladislav Hagara | Komentářů: 25
2.12. 15:30 | Zajímavý projekt

Společnost Jolla oznámila v příspěvku Case study: Sailfish Watch na svém blogu, že naportovala Sailfish OS na chytré hodinky. Využila a inspirovala se otevřeným operačním systémem pro chytré hodinky AsteroidOS. Použita je knihovna libhybris. Ukázka ovládání hodinek na YouTube.

Ladislav Hagara | Komentářů: 17
2.12. 14:15 | Nová verze

Byla vydána verze 7.1.0 skriptovacího jazyka PHP používaného zejména k vývoji dynamických webových stránek. Jedná se o první stabilní verzi nejnovější větvě 7.1. Přehled novinek v dokumentaci. Podrobnosti v ChangeLogu. K dispozici je také příručka pro přechod z PHP 7.0.x na PHP 7.1.x.

Ladislav Hagara | Komentářů: 5
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (24%)
 (29%)
 (7%)
 (5%)
 (3%)
Celkem 774 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: extrakce textu podle masky

8.3.2005 19:04 Pepais | skóre: 1
extrakce textu podle masky
Přečteno: 257×
Cau, potreboval bych pomoci programu SED nebo AWK extrahovat z textoveho proudu slova zadana pomoci urcite masky. napr.

zadal bych masku ¨??x9??c¨

pak bych aby me to na obrazovku vytisklo vsechna slova, ktera maji na treti pozici "x" na ctvrte "9" a na posledni pozici "c". jak na to?? dikec...

Odpovědi

8.3.2005 19:18 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
Rozbalit Rozbalit vše Re: extrakce textu podle masky
man cokoliv co pracuje s regulárními výrazy
Místo otazníku použít tečku. A jestli to mají být skutečně slova, tak ten výraz dát do \<...\>
8.3.2005 21:35 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: extrakce textu podle masky
sed 's/\<\|\>/\n/g' | sed -n '/^..x9..c$/p'
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
31.7.2006 12:53 kamil5 | skóre: 1
Rozbalit Rozbalit vše Re: extrakce textu podle masky
sed -n '/^..x9..c$/p' text.txt

Tohle by se me libilo, ale kdyz je tech slov na radku vic, tak mi to nefunguje a nevypise to nic.

treba kdyz je v text.txt

12x45c # funguje 12x45c abcd # nefunguje

Neexistuje neco jednoducheho co by zvladlo vic slov na radku ? (pokousim se o reg. vyrazy a hledam v diskuzich - proto ten starsi prispevek)

Dekuji Kamil
31.7.2006 12:55 kamil5 | skóre: 1
Rozbalit Rozbalit vše Re: extrakce textu podle masky
sed -n '/^..x9..c$/p' text.txt

Tohle by se me libilo, ale kdyz je tech slov na radku vic, tak mi to nefunguje a nevypise to nic.

treba kdyz je v text.txt

12x45c # funguje 12x45c abcd # nefunguje

Neexistuje neco jednoducheho co by zvladlo vic slov na radku ? (pokousim se o reg. vyrazy a hledam v diskuzich - proto ten starsi prispevek)

Dekuji Kamil
31.7.2006 13:11 klobouk | skóre: 2
Rozbalit Rozbalit vše Re: extrakce textu podle masky
musis to napsat cele tak jak ti poradil ;-) i s tim prvnim sedem a trubkou ;-)
Buh stvoril Evu a rekl Adamovi: "Tady mas a vyber si!" ;-)
31.7.2006 13:43 five | skóre: 6 | Bratislava
Rozbalit Rozbalit vše Re: extrakce textu podle masky
ak ma za tym nieco nasledovat, tak odstran poslednu kotvu $ (ta co znamena koniec riadku) tj /^.x9..c/,

ak tam chces mat znak koniec slova, skus najst ( v perlovskych regularnych vyrazoch je to \b ) v simple regexp tusim \> ... neiste, skus: sed -n '/^..x9..c\>/p' text.txt
31.7.2006 13:28 ams | skóre: 10
Rozbalit Rozbalit vše Re: extrakce textu podle masky
Pokud pouziti SED nebo AWK neni podminkou, slo by pouzit
grep -o '\<..x9..c\>'
31.7.2006 13:39 kamil5 | skóre: 1
Rozbalit Rozbalit vše Re: extrakce textu podle masky
grep -o '\<..x9..c\>'

Tohle funguje, ale vypise to celou radku za tim slovem. Bohuzel prepinac -o me to nevzalo .. (grep: neznámý přepínač -- o)
David Watzke avatar 1.8.2006 03:56 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: extrakce textu podle masky
Tohle funguje, ale vypise to celou radku za tim slovem.
Přesně tomu zamezí přepínač -o. Co to máš za verzi grepu?
$ grep --version
grep (GNU grep) 2.5.1

Copyright 1988, 1992-1999, 2000, 2001 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
1.8.2006 09:13 kamil5 | skóre: 1
Rozbalit Rozbalit vše Re: extrakce textu podle masky
Na stroji kde jsem to testoval je nejaka starsi verze RedHatu grep (GNU grep) 2.4

Na jinem stroji s novym Debianem me to funguje grep (GNU grep) 2.5.1
31.7.2006 13:54 klobouk | skóre: 2
Rozbalit Rozbalit vše Re: extrakce textu podle masky
ono to vsechno zavisi na "typu" sedu a grep, ale tohle by mozna mohlo fungovat (teda mne to jede). To, ze to pokracuje na dalsim radku je DULEZITE ;-)
cat test.txt | sed 's/\ /\
/g' | sed -n '/^..x9..c$/p'
Buh stvoril Evu a rekl Adamovi: "Tady mas a vyber si!" ;-)
31.7.2006 14:14 klobouk | skóre: 2
Rozbalit Rozbalit vše Re: extrakce textu podle masky
a kdyby to neslo, tak tahle variace stejneho postupu i s vyuzitim awk uz musi jit snad na tutti :-)

awk '{ gsub(/\ /, "\n"); print }' | sed -n '/^..x9..c$/p'
Buh stvoril Evu a rekl Adamovi: "Tady mas a vyber si!" ;-)
31.7.2006 14:20 kamil5 | skóre: 1
Rozbalit Rozbalit vše Re: extrakce textu podle masky
awk '{ gsub(/\ /, "\n"); print }' | sed -n '/^..x9..c$/p'

Super, tohle bude ono. Diky vsem
31.7.2006 15:02 Michal Karas | skóre: 44 | blog: /dev/random | Brno
Rozbalit Rozbalit vše Re: extrakce textu podle masky
Mně se to teda zas tak nelíbí. Vždyť funkčně je to ekvivalentní s tím, co psal Hynek Vychodil, pouze tohle používá dva programy místo jednoho.
31.7.2006 15:25 klobouk | skóre: 2
Rozbalit Rozbalit vše Re: extrakce textu podle masky
Ano, je to stejne a vysel jsem z toho, co napsal. Jedina vyhoda me upravy toho postupu je, ze to funguje. To co poradil Hynek Vychodil tazateli nefungovalo, ackoliv je to mnohem elegantnejsi reseni (a mne se libi vic). Proto jsem prvni sed nahradil awk, protoze obycejny sed s \n normalne pracovat neumi (pokud vim tak to umi asi GNU sed).

Bmw. docela rad bych vedel jak to udelat jednodusseji, takze se tesim na dalsi lepsi reseni jinych lidi, protoze jsem problem s \n v "obyc" sedu resil uz mockrat a nevyresil. Srry, I did my best ;-) :-)
Buh stvoril Evu a rekl Adamovi: "Tady mas a vyber si!" ;-)
31.7.2006 18:03 kamil5 | skóre: 1
Rozbalit Rozbalit vše Re: extrakce textu podle masky
No zda se, ze jsem to zase nevyresil

Jde me vlastne od zacatku nahradu meho skriptu co jsem si udelal ve Win za pomoci wget + autoit + blat a ted bych to chtel predelat na linux.

Tam jsem to mel udelane jednoduse ze script nasel retezec treba v index.html posunul se o x znaku doprava pak nacetl xy znaku do schranky a ulozil do souboru.

To by bylo asi idealni i tady a nevim jesli to jde za pomoci reg. vyrazu udelat. Mozna na to jdu moc od lesa. A je neco jednodussiho.

Kamil
31.7.2006 18:09 zabza | skóre: 52 | blog: Nad_sklenkou_cerveneho
Rozbalit Rozbalit vše Re: extrakce textu podle masky
tak dejte příklad, jak vypadá vstup a jak má vypadat výstup...
31.7.2006 18:33 kamil5 | skóre: 1
Rozbalit Rozbalit vše Re: extrakce textu podle masky
Najdi ČEZ v html kodu

ID_CENINA=11392 ČEZ td atd .. td class=815,16

Ten html kod se me nepodarilo sem zapsat Pak vyber kurs tady 815,16 a treba vytiskni na obrazovku n. uloz do souboru. A to je vlastne vse Kamil
31.7.2006 19:12 kamil5 | skóre: 1
Rozbalit Rozbalit vše Re: extrakce textu podle masky
Tady je to i s kodem http://tech.autohlavka.com/extrakce.html
1.8.2006 02:06 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: extrakce textu podle masky
Ten html kod se me nepodarilo sem zapsat
Nepodařilo se to kvůli zobáčkům?
http://www.abclinuxu.cz/blog/johny/2006/8/1/142890
1.8.2006 02:57 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: extrakce textu podle masky
Tento program
#!/usr/bin/env python
# -*- coding: iso-8859-2
import re
html = u'''
ID_CENINA=11392'>ČEZ</a></td><td class="tr">815,16</td> ... -0,52
'''
id = u'ČEZ'
regexp = re.compile(id + r'.*?(\d+(?:,\d+)?)')
print regexp.search(html).groups()[0]
Vypíše
815,16
1.8.2006 09:55 kamil5 | skóre: 1
Rozbalit Rozbalit vše Re: extrakce textu podle masky
Tohle funguje Jen se jeste snazim vyresit, aby to otevrelo soubor a obsah se predhodil tomu scriptu. S Pythonem se setkavam dnes poprve :-) neco jako ..

#!/usr/bin/env python

# -*- coding: iso-8859-2

soubor = open('index.html','r')

import re html = u'''soubor'''

id = u'ČEZ' regexp = re.compile(id + r'.*?(\d+(?:,\d+)?)') print regexp.search(html).groups()[0]

#Vypíše 815,16
1.8.2006 10:20 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: extrakce textu podle masky
Zkusím hádat - ten index.html se předtím odněkud stáhl třeba wgetem a pak by se předal tomu skriptu. A co kdyby se to napsalo celé v pythonu včetně toho stahování? Třeba tohle
#!/usr/bin/env python
# -*- coding: iso-8859-2
import re, urllib2
id = 'ČEZ'
regexp = re.compile(r'ID_CENINA=\d+.*' + id + r'.*?(\d+(?:,\d+)?)', re.DOTALL)
url = 'http://tech.autohlavka.com/extrakce.html'
html = urllib2.urlopen(url).read()
print regexp.search(html).groups()[0]
vypíše opět 815,16 ale tentokrát to stáhne html z tvé stránky.
1.8.2006 10:27 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: extrakce textu podle masky
Ale kdybys to html chtěl opravdu číst ze souboru, tak stačí napsat
html = file('index.html').read()
1.8.2006 10:47 kamil5 | skóre: 1
Rozbalit Rozbalit vše Re: extrakce textu podle masky
#!/usr/bin/env python

# -*- coding: iso-8859-2

import re

html = file('index.html').read()

id = u'ČEZ'

regexp = re.compile(id + r'.*?(\d+(?:,\d+)?)')

print regexp.search(html).groups()[0]

Tohle me vraci .. Traceback (most recent call last): File "extr.pyth", line 7, in ? print regexp.search(html).groups()[0] AttributeError: 'NoneType' object has no attribute 'groups'
1.8.2006 10:48 hm
Rozbalit Rozbalit vše Re: extrakce textu podle masky
proč to nepíšete v jazyce, který ovládáte?
1.8.2006 10:50 kamil5 | skóre: 1
Rozbalit Rozbalit vše Re: extrakce textu podle masky
Zda se ze to nefunguje, kdyz je to v php a html se musi vygenerovat http://tech.autohlavka.com/extrakce.html byl jen priklad
1.8.2006 11:07 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: extrakce textu podle masky
Bohužel jsem neměl k dispozici nic jiného než právě ten příklad, který jsi poslal. Na něm je to testováno.
Tato diskuse už je ale moc košatá, takže jestli chceš nějaké řešení v Pythonu, ozvi se mi na mail (a kdyby z toho vzešlo něco přínosného, tak to sem napíšu). Jestli chceš raději zůstat u známějších nástrojů (jak psal hm), tak o tom už je zde IMHO informací dostatek.
BTW, klientovi by mělo být úplně jedno, jestli je html statické nebo dynamické. A parsování HTML přes regulární výrazy je vždycky humus a spolehlivost je nepředvídatelná.

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.