![]() |
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Regler | Links | Albums | FAQ | Members List | Kalender | Søgning | Dagens Stillinger | Mark Forums Read |
| UNIX for dummyer Spørgsmål & svar Hvis du ikke ved, hvor man skal sende en UNIX-eller Linux-spørgsmål, efter det her. Alle UNIX og Linux newbies velkommen! |
Mere UNIX og Linux Forum Emner du måske kan finde Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Last Post |
| At bryde data i HTML | phip | Shell Programmering og Scripting | 1 | 05-20-2008 04:23 AM |
| Konvertering af HTML-data i et regneark | garric | Shell Programmering og Scripting | 4 | 04-22-2008 11:00 AM |
| Hvordan kan jeg partiallicens kun tekst fra html fil uden HTML-tag | los111 | UNIX for dummyer Spørgsmål & svar | 4 | 11-28-2007 04:40 AM |
| coverting html data til teksten i 'c' | phani_sree | Højtstående Programmering | 3 | 10-18-2007 11:06 AM |
| Konvertering af tabellerne i rækken data i kolonner i tabeller | justthisguy | Shell Programmering og Scripting | 7 | 07-16-2007 05:42 PM |
![]() |
|
|
LinkBack | Thread Tools | Søg denne tråd | Rate Thread | Display Modes |
|
|
|
||||
|
udtrække data fra html tabeller
hej
Jeg har brug for at bruge UNIX at udtrække data fra flere rækker i en tabel kodet i html. Jeg ved, at rækker i en tabel har tags <tr> </ tr> og så tænkte jeg, at min første skridt bør være at slette alle de andre html-kode, som ikke er indeholdt i disse tags. Jeg kunne så bruge denne metode igen, men fjerne alt ikke i <td> </ td> tags. men det store spørgsmål er, hvordan kan jeg gøre dette? Jeg tror, jeg har brug for sed men for øjeblikket er det bare forvirrende mig for meget nogen hjælp? |
|
||||
|
I princippet har De ret. Følgende script vil ekstrakt alt mellem en "<tr>" og "</ tr>" tag. Det vil gå ud fra, at der ikke er flere "<tr> - </ tr>"-par på en enkelt linje og tags selv er alle med små bogstaver (ingen "<TR>"). Resultatet er måske ikke, hvad du har brug for, selv om, så kan du overveje at give os en prøve på, hvad du har, og hvad vil du få brug for at komme fra den. Dette vil hjælpe os med at hjælpe dig bedre. Code:
sed 's/.*<tr>//;s/<\/tr>.*//' /path/to/your/file Jeg håber, at dette hjælper. bakunin |
|
|||||
|
Hej.
Se HTML-tabel til CSV for en anden metode, hvor der lynx-dump. I almindelighed, links til tråde ligner dine er indsendt i bunden af tråd ... cheers, DRL |
|
||||
|
takket bakunin, at der virkelig er nyttige. I cant efter en prøve af HTML-side af forskellige årsager. det eneste problem med din løsning er, at de fleste af de <tr> tags er på tværs af flere linjer i min HTML-side. dvs. tag kan åbnes på linje 7 og derefter lukket på linje 20. dermed er det muligt med sed at slette alt på en linje (herunder linjen), MEN stoppe, når det bliver til en <tr> tag og starte forfra, når det bliver til en </ tr>? Alternativt er der en måde at gøre sed mener, at hele HTML-side er på en enkelt linje?
Da jeg ikke bekendt med de kapaciteter sedDet gør det svært for mig at vide, hvad den bedste måde til at fuldføre denne opgave er. |
|
||||
|
Citat:
Hvis du efter noget, man vil postnummer. Ellers er du nødt til at gøre det selv. Prøv noget i retning af at erstatte alle newlines i filen med mellemrum, at en opsplitning af filen før hver <eller efter hver>, og gå derfra. Hvis du kan have en <eller> inden for data, så du vil gøre lidt ekstra arbejde. Det er det bedste jeg kan gøre for dig i øjeblikket. ShawnMilo |
|
||||
|
forsøger at besvare mit spørgsmål her, men im stadig kæmper hvis dette gør ikke arbejde så vil jeg mock up et eksempel, jeg troede, at min beskrivelse kan have været gode nok withough behøver at spilde tid på at gøre et eksempel bordet. Jeg fandt på dette websted Sed - en introduktion og selvstudium at du kan oprette værdiskalaer med mønstre. eksemplet kode er: Code:
sed '/start/,/stop/ s/#.*//' Jeg forsøgte at gøre <tr> min start-og </ tr> mit stop, men jeg bare holdes få fejl. Desuden ville jeg have til IKKE (!) det så i stedet for at slette alt i tags, det sletter alt uden for tags. kunne nogen behage hjælp mig med at få denne sed kommando arbejder? tak Sidst redigeret af Streetrcr; 03-20-2008 på 04:05 AM.. Årsag: kode tags |
|
||||
|
Citat:
Code:
sed -n '/<tr>/,/<\/tr> {
s/.*<tr>//
s/<\/tr>.*//
p
}' /path/to/your/file
Hvordan det virker: den "-n"-klausul vil stoppe sed fra trykkerier hver linje, den har læst, så hvis du sletter script det ville udskrive bare ingenting. Dette er for at (indirekte) smide alle de linjer, som ikke er i det angivne interval. Alt mellem krøllede parenteser udføres kun, når inde for det område, på linje 1. Som du kan se de sidste kommando inde i krøllede parenteser er et "P", hvilket vil udskrive alt indenfor dette interval. Hvis du sletter de to "s /...."- kommandoer det ville udskrive noget dette: Code:
something....<tr> content of the tr-tag some more content even more content</tr> something else.... Som du kan se de fede dele bør udgå, da de ikke er en del af, hvad du ønsker. De to "s /..."- kommandoer (s \u003d stedfortræder) tager sig af, at sammen med tags selv. På sidste p (rint)-kommando output resultatet af alle de trimning. Endnu et par ord, men: Har du et andet svar fra mig, fordi jeg var glad for at du gjorde ægte forskning på egen hånd. Du næsten fortabt dette svar på grund af denne: Citat:
Jeg er selv nu "spilde mere tid" til at forklare dig, hvorfor du måske nogle gange får ikke noget svar på alle eller nogle svar kan du ikke bruge. Gå tal. Jeg håber, at dette hjælper. bakunin |
![]() |
| Bogmærker |
| Thread Tools | Søg denne tråd |
| Display Modes | Bedøm denne tråd |
|
|