The UNIX and Linux Forums  
Hallo en welkom van de Verenigde Staten aan de UNIX en Linux Forum! Bedankt voor uw bezoek en Deelnemen aan onze wereldwijde gemeenschap.

Go Back   De Unix-en Linux Forum > Top Forums > Programmeren en Shell Scripting
.
google unix.com



Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier.

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
Aantal regels in een bestand (perl script) jisha Programmeren en Shell Scripting 5 05-20-2008 07:11
Script om Scan proclog bestanden deeprajn95 Programmeren en Shell Scripting 3 05-12-2008 06:25
Perl: Getting terug vindplaats uit s modifier cooldude Programmeren en Shell Scripting 8 03-19-2008 09:49
Perl script te scannen door bestanden gholdbhurg Programmeren en Shell Scripting 1 03-05-2008 10:53 PM
Hoe scan alleen nieuwe lijnen toegevoegd in het bestand? redlotus72 UNIX voor Dummies Questions & Answers 3 04-28-2005 03:34 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 Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 03-18-2008
gholdbhurg gholdbhurg is offline
Geregistreerde gebruiker
  
 

Join Datum: oktober 2007
Posts: 26
Perl script te scannen terug lijnen

Hoi Perl goeroes,
Ik heb dit bestand te scannen door. Monster lijnen hieronder:

2008031A, USERNAME, 12345, geven ABC neemt XYZ, transactie ingediend
2008031B, USERNAME, 12346, wachtend voor de verwerking
2008031C, USERNAME, 12347, ophalen reactie
2008031D, USERNAME, 12348, Dit is geen geldig maken
2008031E, USERNAME, 12349, Staat er niet in is geslaagd
2008031F, USERNAME, 12350, System \u003d 0
2008031G, USERNAME, 12351, Wachten op nieuwe txns
2008031H, SOMEONE, 12352, geef STE, neem GVO, transactie ingediend
2008031I, SOMEONE, 12353, wachtend voor de verwerking
2008031J, SOMEONE, 12354, ophalen reactie
2008031K, SOMEONE, 12355, Dit is geen geldig maken
2008031L, SOMEONE, 12356, Staat er niet in is geslaagd
2008031M, SOMEONE, 12357, System \u003d 0
2008031N, SOMEONE, 12358, Wachten op nieuwe txns

Ik moet op zoek naar dit patroon
->
"Dit is geen geldig omgaan"
Wanneer een lijn gevonden een wedstrijd, het moet schrijven in het logboek de <Gebruikersnaam> alsmede het geven en nemen waarde (dwz ABC, XYZ)

Na het scannen van bovenstaande bestand, foutenlogboek moeten verschijnen:
FOUT: gebruikersnaam (ABC, XYZ)
FOUT: SOMEONE (STE, GVO)

Any ideas?

Thanks in advance jongens.
  #2 (permalink)  
Old 03-18-2008
tijdperk
Score
  
 

Berichten: n / a
Bits: 0 [Banking]
Kan transacties worden in het midden tussen het log bestand, of zullen alle details van een transactie worden op de aangrenzende lijnen, en alle aangrenzende lijnen behoren tot dezelfde transactie, of het merk de grens naar de volgende transactie?

Is een operatie altijd beginnen met het "geven" en "nemen" spul? Is een operatie altijd eindigen met de "Wachten op nieuwe txns" regel?

Code:
vnix$ perl -ne 'if (/give ([^,]*), take ([^,]*), transaction submitted/) { $give = $1; $take = $2; }
    if (/Waiting for new txns/) { $give = $take = undef; }
    if (/, ([^,]*), [^,]*, This is not a valid/) { print "UPPERCASE: $1 ($give, $take)\n"}' /tmp/txn 
UPPERCASE: USERNAME (ABC, XYZ)
UPPERCASE: SOMEONE (STE, GVO)
Ik denk dat alle hoofdletters is een indicatie dat dit de FINANCIËLE SECTOR we hier mee te maken ...?
  #3 (permalink)  
Old 03-18-2008
jim McNamara jim mcnamara is offline Forum Staff  
...@...
  
 

Join Date: Feb 2004
Locatie: NM
Berichten: 5.754
overwegen en awk versie:
Code:
csadev:/home/jmcnama> cat t.awk   
awk -F, 'BEGIN { give=""}
         {
            if($4 ~ /give/){
                  give=sprintf("%s%,%s" ,
                        substr($4, length($4)-3),
                        substr($5, length($5)-3 ) )
                  }
            if($4 ~ /This is not a valid dealing/) {
                printf("ERROR: %s (%s)\n", $2, give)
                }
         } ' filename

csadev:/home/jmcnama> cat filename
2008031A, USERNAME, 12345, give ABC, take XYZ, transaction submitted
2008031B, USERNAME, 12346, waiting for processing
2008031C, USERNAME, 12347, Retrieving response
2008031D, USERNAME, 12348, This is not a valid dealing
2008031E, USERNAME, 12349, State has failed
2008031F, USERNAME, 12350, System=0
2008031G, USERNAME, 12351, Waiting for new txns
2008031H, SOMEONE, 12352, give STE, take GVO, transaction submitted
2008031I, SOMEONE, 12353, waiting for processing
2008031J, SOMEONE, 12354, Retrieving response
2008031K, SOMEONE, 12355, This is not a valid dealing
2008031L, SOMEONE, 12356, State has failed
2008031M, SOMEONE, 12357, System=0
2008031N, SOMEONE, 12358, Waiting for new txns

csadev:/home/jmcnama> t.awk
ERROR:  USERNAME ( ABC, XYZ)
ERROR:  SOMEONE ( STE, GVO)
  #4 (permalink)  
Old 03-18-2008
gholdbhurg gholdbhurg is offline
Geregistreerde gebruiker
  
 

Join Datum: oktober 2007
Posts: 26
Hi tijdperk / Jim,
Bedankt voor de snelle reactie.

>>>
Hi tijdperk,
Mijn reacties hieronder:
1. Kan transacties worden in het midden tussen het log bestand, of zullen alle details van een transactie worden op de aangrenzende lijnen, en alle aangrenzende lijnen behoren tot dezelfde transactie, of het merk de grens naar de volgende transactie?
ANS:
Ja, alle details van een transactie zal worden op de aangrenzende lijnen, en alle aangrenzende lijnen behoren tot dezelfde gebruiker / transactie.

2. Is een operatie altijd beginnen met het "geven" en "nemen" spul? Is een operatie altijd eindigen met de "Wachten op nieuwe txns" regel?
ANS:
Ja dat zal altijd de start van alle txns, maar het einde lijnen kan variëren.
Voor succesvol zijn, er gewoon zijn van "Dit is geen geldige omgaan" regel in tussen.
>>>

Btw, indien mogelijk, ik zou liever in perl

Hoop te horen van de andere goeroes.
Appreciate it very much.

Laatst gewijzigd door gholdbhurg; op 03.18.2008 12:41..
Closed Thread

Bladwijzers

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 11:46 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0