Portál AbcLinuxu, 10. května 2025 05:29

Dotaz: SED - extrakce retezce z html

14.8.2007 15:03 Honza
SED - extrakce retezce z html
Přečteno: 346×
Odpovědět | Admin
Dobry den, uz 2 dny se trapim se sedem. Potrebuji z textu vytahnout urcite retezce, ktere jsou ohraniceny jinymi retezci. Dam priklad:
-w ref='c1' click="video('XXX');" --img src='img.jpg'--/a>
-w ref='c2' click="video('XXX');" --img src='img.jpg'--/a>
-w ref='c3' click="video('XXX');" --img src='img.jpg'--/a>
-w ref='c4' click="video('XXX');" --img src='img.jpg'--/a>
kde XXX je zcela obecnej text, na kazdem radku jinej. Potrebuji do vysledneho souboru ulozit pouze retezce XXX Uz sem zkousel s/ /d ale ani jedno mi nechtelo fungovat Diky Jan Muller
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Zdeněk Molík avatar 14.8.2007 15:35 Zdeněk Molík | skóre: 14 | Znojmo - Oblekovice
Rozbalit Rozbalit vše Re: SED - extrakce retezce z html
Odpovědět | | Sbalit | Link | Blokovat | Admin
No nevím zda jsem to přesně pochopil, ale pro uvedený příklad ( vstupní soubor in.html) by to mohlo býti následovně:

sed -n -e "/video/p" < in.html | sed -e "s/.*video('\(.*\)').*/\1/ > out.txt

Nejdříve si vyfiltruji pouze řádky s s textem video a pak vlastní obsah, který uložím do souboru out.txt
14.8.2007 15:59 Honza
Rozbalit Rozbalit vše Re: SED - extrakce retezce z html
skvely...funguje to...moc moc diky Honza
14.8.2007 17:33 qiRzT | skóre: 14 | blog: U_Marvina
Rozbalit Rozbalit vše Re: SED - extrakce retezce z html
Má to jeden drobnej nedostatek. Nebude to fungovat pokud na řádku za video(XXX) bude někde ). Ale na to už je, tuším, sed krátkej... Jinak jako dva zlepšováky doporučuju:

1) sed -n -e "/video/p" < in.html | sed -e "s/.*video('\([^)]*\)').*/\1/ > out.txt , pokud v XXX nejsou závorky

2) sed -n -e "/video/p" < in.html | sed -e "s/.*video('\(.*\)')\;.*/\1/ > out.txt pokud tam závorky jsou, řeší to aspoň trochu problém s další ) na řádku. Teď tam nesmí být );.
Důležité je vědět jak problém vyřešit, zbytek zvládne i cvičená opice...
14.8.2007 18:23 kirpike | skóre: 8 | Plzeň
Rozbalit Rozbalit vše Re: SED - extrakce retezce z html
Když už, tak proč ne takto:
sed -n -e "/.*video('\([^']*\)');.*/{s//\1/;p}" <in.html >out.txt
pak to zvládne i tento vstup:
-w ref='c1' click="video('alpha');" --img src='img.jpg'--/a> neco('xxx');
bla bla
-w ref='c2' click="video('beta');" --img src='img.jpg'--/a> nic(xxx)
Bla Bla Bla
-w ref='c3' click="video('gama');" --img src='img.jpg'--/a;gt;
To je prima video.
14.8.2007 17:48 YYY | skóre: 29 | blog: martinek
Rozbalit Rozbalit vše Re: SED - extrakce retezce z html
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nejlepsi by bylo pouziti AWK :-)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.