string feldolgozás

Fórumok

Sziasztok!

Van egy fileom, amiben mindenféle haszontalan sor között van ilyen:


diw klass="s2"><a class="t" href="HASZNOSSZÖVEG">SZÁM1</a></div>
HASZONTALANSÁG
diw klass="l2"><a class="t" href="HASZNOSSZÖVEG">SZÁM2</a></div>

Számomra a HASZNOSSZÖVEG, a SZÁM1 és a SZÁM2 kell. A HASZNOSSZÖVEG a két sorban megegyezik (de csak két egymást követőben). Mindig az s2 class sor van elől, azt követi az l2.

Szeretnék ebből egy csv filet generálni a következő tartalommal:
HASZNOSSZÖVEG;SZÁM1;SZÁM2;SZÁM1/SZÁM2
(tehát az utolsóban a SZÁM1-t el szeretném osztani SZÁM2-vel.)


Addig jutottam, hogy megkeresem a div s2 href részt, majd utána kellene egy változóba tenni a következő "-ig a szöveget. Ezt hogy tehetném meg?

Ezután már csak a következő

 > < 

jel közötti számot szeretném megkaparintani.

Majd ugyanezt a következő sornál.

Miylen linuxos app-ot tudok a legkönnyebben felbíztatni ilyesmire?

Köszönöm!

Hozzászólások

Itt valami gond lesz a < és > jelekkel.
Javaslom javításra, mert nem látszik jól a példa.

Így, hogy a specifikáció fele sem látszik az iszképeletlen karakterek miatt, rávágom, hogy awk-ban féltucat sor.
Ha sokkal bonyolultabb a bemenet, mint ami ebből a kásából sejthető, elmehet akár egy tucatig is.

Ha tényleg az a html, amit sejteni lehet, akkor kb ennyi:


 awk -F'["<>]' -vOFS=';'  '/class="s2"/ {hsz=$5; szam1=$7}; /class="l2"/ {szam2=$7; print hsz,szam1,szam2,szam1/szam2}' valami.html

csak en olvastam ezt "Sting feldolgozas"-nak? :)

Ha ez HTML, és ismersz valami scriptnyelvet, akkor valami HTML parsert javasolnék, azzal már tudsz viszonylag jól dolgozni.

http://ruby.bastardsbook.com/chapters/html-parsing/
http://stackoverflow.com/questions/4822422/output-array-to-csv-in-ruby

Szerk: rakd ki az eredeti, vagy azzal struktúrálisan megegyező file-t valahova, megírom rá a Rubyt, ha lesz időm :) Végülis szeretek ilyenekkel szórakozni.