![]() |
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Regler | Links | Albums | FAQ | Members List | Kalender | Søgning | Dagens Stillinger | Mark Forums Read |
| Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her. |
Mere UNIX og Linux Forum Emner du måske kan finde Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Last Post |
| Udvinder en snor fra en fil og søge på samme streng i andre filer | mohancrr | Shell Programmering og Scripting | 1 | 09-19-2007 04:17 AM |
| Perl: søger efter en snor i en fil ... | pondlife | Shell Programmering og Scripting | 4 | 09-17-2007 08:35 AM |
| Hej! Søgning efter en tekststreng i UNIX | skwadim | UNIX for dummyer Spørgsmål & svar | 1 | 12-22-2006 01:13 PM |
| Søgning vejviser for fil, der indeholder noget tekst. | LordJezo | UNIX for dummyer Spørgsmål & svar | 4 | 04-04-2006 09:58 PM |
| Hjælp med at søge en tekstfil | thekid2 | Shell Programmering og Scripting | 6 | 01-02-2004 02:09 AM |
![]() |
|
|
LinkBack | Thread Tools | Søg denne tråd | Rate Thread | Display Modes |
|
|
|
||||
|
PERL: Søgning efter en snor i en tekstfil problem
Looking for lidt hjælp. Jeg har brug for at søge efter en streng af ord, men desværre er disse ord ligger på separate linjer.
for eksempel teksten output er: United Chanmpions Ronaldo Liverpool Tabere Torres og min script kode er print ( "Debug - kontrol fil besked"); while (<FILE>) ( $ line \u003d $ _; if ($ line \u003d ~ / United /) ( print ( "\ nAbout til at sende e-mail \ n"); sendEmail ($ kontakter, "", "Kontrol", "\ nVenligst være klar over, at der er et problem." "", ""); ) ovenstående script vil sende en e-mail, når det lokaliserer Forenede, men jeg er nødt til at sende en e-mail, når det bliver United Champions Ronaldo. Jeg tænkte noget i retning af if ($ line \u003d ~ / United / n Champions / n Ronaldo /) Men ingen held. Nogen forslag til, hvordan man kan gå om. |
|
||||
|
Hi photon, Tak for svaret.
Men ikke helt, hvad jeg forsøger at gøre, jeg problemer kunne have forklaret det lidt bedre. Mit problem er, at jeg kun ønsker at sende en e-mail, hvis linjer United Champions Ronaldo forekomme direkte efter hinanden som i. prøve tekstfil United Chanmpions Ronaldo Liverpool Tabere Torres I dont vil sende en e-mail kun hvis ordene er placeret i filen f.eks I dont vil sende en e-mail, hvis tekstfil er United Champions Torres Liverpool Tabere Ronaldo som linjerne im interesserede dont forekomme i den rigtige rækkefølge. |
|
||||
|
Ovenstående kode er forkert, da det er en forkert brug af karakter klasser: [], som matcher nogen af de tegn, inde i kantede parenteser i vilkårlig rækkefølge. Du kan ikke bruge dem til at matche hele ord, i hvert fald ikke let eller effciently eller i den måde, de anvendes ovenfor. Plus at ville se også kun en linje i filen på et tidspunkt.
|
|
||||
|
To metoder ....
1. Søg efter et af de ord på hver linje og hver gang du finder en, skal du føje den til en hash ... f.eks $ somehash ( "Renaldo") \u003d 1; Når du er færdig med at scanne hele dossier, kontrollerer den resulterende hash for eksistensen af alle de ord .... if (findes $ somehash ( "Renaldo") & & findes $ somehash ( "loosers") & & findes ...) (sende e-post ... ) Noget i den retning .... ELLER .... Du kan prøve et mønster som $ FILEBUFFER \u003d ~ / (A | B | C | D). + (A | B | C | D). + (A | B | C | D ).... / er Du skal blot gentage alternativer igen og igen adskilt af en eller flere af alle tegn, og på den måde du fange dem alle, hvis der ikke er ligegyldigt hvad den rækkefølge .... Du er nødt til at prøve den resulterende fange for at se, om alle ord er til stede ... Bemærk de "er" i slutningen af det mønster ... "I" årsager tilfælde bliver ignoreret, og "s", siger at tælle en newline som en af de "tegn", som giver dig mulighed for at matche hele linjer ... Bemærk, at i dette tilfælde $ FILEBUFFER indeholder samtlige sagsakter (se READ ()), ikke en linje .... |
![]() |
| Bogmærker |
| Tags |
| linux, perl, perl skift, skift, skift perl |
| Thread Tools | Søg denne tråd |
| Display Modes | Bedøm denne tråd |
|
|