The UNIX and Linux Forums  


Go Back   UNIX og Linux Forums > Top Forums > UNIX for dummyer Spørgsmål & svar
.
google unix.com



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

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Søg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 03-19-2008
Streetrcr Streetrcr is offline
Registreret Bruger
  
 

Join Date: Mar 2008
Stillinger: 10
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?
  #2 (permalink)  
Old 03-19-2008
bakunin bakunin is offline Forum Staff  
Bughunter ekstraordinære
  
 

Join Date: May 2005
Beliggenhed: I den venstre byte i / dev / kmem
Indlæg: 1.631
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
  #3 (permalink)  
Old 03-19-2008
drl's Avatar
DRL drl is offline Forum Advisor  
Registreret Bruger
  
 

Join Date: Apr 2007
Beliggenhed: Saint Paul, MN USA / BSD, CentOS, Debian, OS X, Solaris
Posts: 712
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
  #4 (permalink)  
Old 03-19-2008
Streetrcr Streetrcr is offline
Registreret Bruger
  
 

Join Date: Mar 2008
Stillinger: 10
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.
  #5 (permalink)  
Old 03-19-2008
ShawnMilo ShawnMilo is offline
Registreret Bruger
  
 

Join Date: Jun 2006
Stillinger: 252
Citat:
Oprindeligt Indsendt af Streetrcr View Post
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.
Er der ingen grund til du ikke kan mock up en HTML-side, der ligner den, du arbejder med, men som ikke indeholder følsomme oplysninger. Ingen er interesseret i at kaste pile ind i et mørkt rum.

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
  #6 (permalink)  
Old 03-20-2008
Streetrcr Streetrcr is offline
Registreret Bruger
  
 

Join Date: Mar 2008
Stillinger: 10
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
  #7 (permalink)  
Old 03-20-2008
bakunin bakunin is offline Forum Staff  
Bughunter ekstraordinære
  
 

Join Date: May 2005
Beliggenhed: I den venstre byte i / dev / kmem
Indlæg: 1.631
Citat:
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.
Nå, jeg fortalte dig, at - i mangel af eksempel - jeg var nødt til at gøre nogle antagelser. Her er en ny version, der vil arbejde på tags spænder over flere linjer. Det vil stadig ikke fangsten er tale om flere "<tr> ...</ tr>" par på én linje, selv om.


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:
[...] withough behøver at spilde tid på at gøre et eksempel tabellen
Du vil måske bemærke, jeg har "spildt tid" ikke blot at skrive et script, men selv spilde mere tid på at forklare, hvordan det fungerer i håb om ikke kun at løse problemet ved hånden, men at øge din forståelse på samme tid. Oven på, at jeg "spilde mere tid" til at skrive et script i mit første indlæg, som ingen vil få brug for, fordi den var baseret på fejlagtige antagelser. Antagelser, som måske ikke har været mangelfuld på alle ville jeg have været i stand til at arbejde fra et eksempel oprettet af "spilde tiden".

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
Closed Thread

Bogmærker

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 07:01 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0