The UNIX and Linux Forums  
Hej och välkommen från USA till UNIX och Linux Forum! Tack för ditt besök och gå med i vår globala gemenskapen.

Go Back   UNIX och Linux Forum > Upp Forum > Shell-programmering och Skript
.
google unix.com



Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här.

Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
Tråd Thread Starter Forum Svar Senaste Inlägg
Extrahera en sträng från en fil och söka samma snöre i andra filer mohancrr Shell-programmering och Skript 1 09-19-2007 04:17
Perl: söker efter en sträng i en fil ... pondlife Shell-programmering och Skript 4 09-17-2007 08:35
Hej! Söker efter en textsträng i UNIX skwadim UNIX for Dummies Frågor & Svar 1 12-22-2006 01:13
Sökning katalogen för filen som innehåller lite text. LordJezo UNIX for Dummies Frågor & Svar 4 04-04-2006 09:58
Hjälp med att söka en textfil thekid2 Shell-programmering och Skript 6 01-02-2004 02:09

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ök i denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 04-28-2008
meevagh meevagh is offline
Registered User
  
 

Join Date: april 2008
Inlägg: 7
PERL: Söka efter en sträng i en textfil problem

Söker du lite hjälp. Jag behöver för att söka efter en sträng av ord, men tyvärr dessa ord finns på separata rader.

exempelvis texten produktionen:

United
Chanmpions
Ronaldo
Liverpool
Förlorare
Torres


och min skriptkod är

print ( "Debug - kontrollera filen meddelande");
while (<file>) (
$ rad \u003d $ _;

if ($ line \u003d ~ / United /) (
print ( "\ nAbout att skicka e-post \ n");
sendEmail ($ kontakter
""
"Monitoring"
"\ nTa vara medveten om att det finns ett problem."
""
"");
)

ovanstående skript kommer att skicka ut ett e-post när det lokaliserar United, men jag måste skicka ut ett e-post när det blir United Champions Ronaldo.

Jag trodde att något liknande
if ($ line \u003d ~ / United / n Champions / n Ronaldo /)

Men ingen lycka.

Eventuella förslag till hur att gå åt detta.
  #2 (permalänk)  
Old 04-28-2008
photon's Avatar
photon photon is offline
Registered User
  
 

Join Date: Jul 2002
Inlägg: 162
$ line \u003d ~ / (United | Chanmpions | Ronaldo | LiverpoolLosers | Torres) / i
  #3 (permalänk)  
Old 04-28-2008
meevagh meevagh is offline
Registered User
  
 

Join Date: april 2008
Inlägg: 7
Hej fotonstråle, Tack för svaret.
Men inte riktigt vad jag försöker göra, jag problem kunde ha förklarat lite bättre.

Mitt problem är att jag bara vill skicka ut ett e-post om de linjer
United
Champions
Ronaldo
uppträda direkt efter varandra i.

Provet textfil

United
Chanmpions
Ronaldo
Liverpool
Förlorare
Torres


I dont vill skicka ett e-post bara om orden finns i filen till exempel I dont vill skicka ett e-postmeddelande om text filen

United
Champions
Torres
Liverpool
Förlorare
Ronaldo

som linjer im intresserade dont inträffa i rätt ordning.
  #4 (permalänk)  
Old 04-28-2008
photon's Avatar
photon photon is offline
Registered User
  
 

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

Senast redigerad av photon; 04-28-2008 vid 03:43..
  #5 (permalänk)  
Old 04-28-2008
KevinADC KevinADC is offline Forum Advisor  
Registered User
  
 

Join Date: Jan 2008
Inlägg: 731
Citat:
Ursprungligen postat av photon View Post
$ line \u003d ~ / [Förenade \ s]? [Chanmpions \ s]? [Ronaldo \ s]? /
Ovanstående kod är fel eftersom det är en felaktig användning av karaktärer: [] som matchar något av tecknen inom hakparenteser i vilken ordning. Du kan inte använda dem för att matcha hela ord, åtminstone inte lätt eller effciently eller på det sätt de används ovan. Plus att det också skulle kolla bara en raden i en fil i taget.
  #6 (permalänk)  
Old 04-28-2008
photon's Avatar
photon photon is offline
Registered User
  
 

Join Date: Jul 2002
Inlägg: 162
Jag ändrade det punkt var att använda en liner reguljära uttryck istället för att använda hashar och loopar och få alla komplexa. Jag önskar jag hade tid att testa alla mina nummer, men jag är på arbetstid.
  #7 (permalänk)  
Old 04-28-2008
quine quine is offline
Registered User
  
 

Join Date: mars 2008
Location: Bay Area Kalifornien
Inlägg: 68
Två metoder ....

1. Sök efter något av orden på varje rad och varje gång du hittar en, lägg den i en hash ... t.ex. $ somehash ( "Renaldo") \u003d 1;

När du är klar med skanningen hela filen, kontrollera de hash för förekomsten av alla ord ....

if (finns $ somehash ( "Renaldo") & & finns $ somehash ( "loosers") & & finns ...) (skicka e-post ... )

Nåt sånt ....

ELLER ....

Du kan prova ett mönster liksom

$ FILEBUFFER \u003d ~ / (A | B | C | D). + (A | B | C | D). + (A | B | C | D ).... / är

Du bara upprepa alternativ om och om igen åtskilda av en eller flera av någon karaktär, och det sätt du fånga dem alla om det finns oavsett vad så .... Du måste testa den fångst för att se om alla ord är närvarande ... Notera "är" i slutet av mönster ... "i" orsakar fallet som ska ignoreras, och "S" säger att räkna en newline som en av "alla tecken" som gör att du kan matcha hela rader ... Observera att i detta fall $ FILEBUFFER innehåller hela filen (se LÄS ()), inte en linje ....
Closed Thread

Komihåglista

Taggar
linux, perl, perl skift, växla, skift perl

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG] kod
HTML-koden är Av
Trackback är
Pingbacks är
Refbacks är




Alla tider är GMT -4. Klockan är nu 01:15.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2009. All Rights Reserved.Ad förvaltning RedTyger

Content Relevant webbadresser från vBSEO 3.2.0