The UNIX and Linux Forums  

Go Back   UNIX og Linux Forums > Top Forums > Shell Programmering og Scripting
.
google unix.com



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

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 04-28-2008
meevagh meevagh is offline
Registreret Bruger
  
 

Join Date: Apr 2008
Stillinger: 7
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.
  #2 (permalink)  
Old 04-28-2008
photon's Avatar
photon photon is offline
Registreret Bruger
  
 

Join Date: Jul 2002
Stillinger: 162
$ line \u003d ~ / (Forenede | Chanmpions | Ronaldo | LiverpoolLosers | Torres) / i
  #3 (permalink)  
Old 04-28-2008
meevagh meevagh is offline
Registreret Bruger
  
 

Join Date: Apr 2008
Stillinger: 7
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.
  #4 (permalink)  
Old 04-28-2008
photon's Avatar
photon photon is offline
Registreret Bruger
  
 

Join Date: Jul 2002
Stillinger: 162
$ line \u003d ~ / [United]? \ s? [Chanmpions]? \ s? [Ronaldo]? \ s? /

Sidst redigeret af photon; 04-28-2008 på 03:43 PM..
  #5 (permalink)  
Old 04-28-2008
KevinADC KevinADC is offline Forum Advisor  
Registreret Bruger
  
 

Join Date: Jan 2008
Posts: 731
Citat:
Oprindeligt Indsendt af photon View Post
$ line \u003d ~ / [Storbritannien \ s]? [Chanmpions \ s]? [Ronaldo \ s]? /
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.
  #6 (permalink)  
Old 04-28-2008
photon's Avatar
photon photon is offline
Registreret Bruger
  
 

Join Date: Jul 2002
Stillinger: 162
Jeg har ændret det, var at bruge en foring regulære udtryk i stedet for at bruge hashes og sløjfer og få alle komplekse. Jeg ville ønske jeg havde tid til at teste alle min kode, men jeg er på arbejde tid.
  #7 (permalink)  
Old 04-28-2008
quine quine is offline
Registreret Bruger
  
 

Join Date: Mar 2008
Beliggenhed: Bay Area Californien
Stillinger: 68
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 ....
Closed Thread

Bogmærker

Tags
linux, perl, perl skift, skift, skift perl

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 08:16 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