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!
- 2596 megtekintés
Hozzászólások
Itt valami gond lesz a < és > jelekkel.
Javaslom javításra, mert nem látszik jól a példa.
- A hozzászóláshoz be kell jelentkezni
Sorry, úgy ahogy javítottam de ez a code tag nem tökéletes. Pláne hogy van ahol kacsacsőrrel van leírva de valójában szögletes zárójellel kell...
- A hozzászóláshoz be kell jelentkezni
Ahogy mondod, szakmai portálhoz méltatlan a kódkezelés. Legközelebb valami clipboard oldalra felmásolva, azt linkelve javaslom megoldani.
- A hozzászóláshoz be kell jelentkezni
Vagy első feladat egy olyan script írása, ami átalakítja a kódot itt láthatóvá. ;) Én írtam awk-ban, ha egy kijelölt szövegre Ctrl-H-t nyomok, a clipboard-ra teszi, még a <code>, </code>-ot is beszúrja.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Í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.
- A hozzászóláshoz be kell jelentkezni
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
- A hozzászóláshoz be kell jelentkezni
csak en olvastam ezt "Sting feldolgozas"-nak? :)
- A hozzászóláshoz be kell jelentkezni
Nem csak te... :D
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni