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 > UNIX för avancerade & Expertanvändare
.
google unix.com



UNIX för avancerade & Expertanvändare Expert-to-experten. Läs avancerade UNIX UNIX-kommandon, Linux operativsystem, systemadministration, programmering, Shell, Shell Scripts, Solaris, Linux, HP-UX, AIX, OS X, BSD.

Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
Tråd Thread Starter Forum Svar Senaste Inlägg
Extrahera Text krabu Shell-programmering och Skript 3 04-07-2009 03:16
text-och återanvända den text som ska byta namn på filen JohnDS UNIX for Dummies Frågor & Svar 7 02-05-2009 03:55
Extrahera information från konfigurationsfiler / textbehandling oconmx Shell-programmering och Skript 3 01-21-2009 07:09
hjälp som krävs för att ersätta text i VI Chandu2u Shell-programmering och Skript 6 01-26-2008 11:12
Hjälp krävs om Extrahera rader från en fil google_ever Shell-programmering och Skript 1 10-12-2005 07:02

Reply
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 Omdöme: Thread Rating: 1 votes, 4.00 average. Visningslägen
  #1 (permalänk)  
Old 06-20-2009
hareeshram hareeshram is offline
Registered User
  
 

Join Date: mars 2007
Plats: Chennai
Inlägg: 3
Utvinna krävs text från loggfiler

Det skulle vara mycket märkbar om någon hjälper mig i detta. Jag försöker få det gjort med hjälp av Java, men jag älskar Unix och tror att det kan ske inom några minuter med några rader.

Input loggfilen är en textfil som innehåller flera poster separerade med en tom rad.
Varje separerade posten motsvarar uppgraderingsprocessen information i en fil.

! INRESA text .....< INFO> eller <OKAY> <RESOURCE: /test/src/com/test1/*/test.java> 2009-06-18 13:01:01.181
! MESSAGE Ansökande uppgradera rapport för ärende: test.java

! INRESA text .....< INFO> eller <OKAY> <RESOURCE: /test/src/com/test1/*/test1.java> 2009-06-18 13:01:01.181
! MESSAGE information test1.java kommer att uppgraderas.
! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: fullständig sökväg /file namn> 2009-06-18 13:02:25.681
! MESSAGE lägger import av org.apache.beehive.netui.pageflow.annotations.Jpf för gemensamma ramen beskrivningsdialogrutan stöd.

Varje post börjar med "! INRESA" enligt ovan och kommer att följas av texten "com.bea.workshop.upgrade81" och sedan kommer den att följas av
två typer av taggar: <OKAY> och <INFO>
Och sedan kommer den att följas av taggen <RESOURCE: som innehåller den fullständiga sökvägen till filen och sedan följas av Temne stämpel som visas ovan.

Om det är <OKAY> sedan andra linjen kommer att vara så under
! MESSAGE Ansökande uppgradera rapport för filen: filnamn (som inte är av stor vikt för min produktion)

Ex:
! INRESA text .....< INFO> eller <OKAY> <RESOURCE: /test/src/com/test1/*/test.java> 2009-06-18 13:01:01.181
! MESSAGE Ansökande uppgradera rapport för filen: filnamn

Om det är <INFO> då även andra raden kommer att se ut
! MESSAGE Ansökande uppgradera rapport för ärende: filename
Men det kommer säkerligen att följas av en annan uppsättning av flera linje par börjar med taggar! SUBENTRY,! MESSAGE gärna nedan

! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: path/filename> 2009-06-18 13:02:25.681
! MESSAGE lägger import av org.apache.beehive.netui.pageflow.annotations.Jpf för gemensamma ramen beskrivningsdialogrutan stöd.


Mitt krav är som nedan:

Krav 1

1) För alla poster med <OKAY> tag, jag behöver för att extrahera filnamn som kommer att efter <RESOURCE :..... och före Temne stämpel
Observera posterna skiljs åt med en tom rad

Krav 2

2) För alla linjer med <INFO> tag skulle jag vilja ha en textfil med poster som denna

Fullständig sökväg och filnamn och sedan i nästa rad
Hela texten efter! MESAAGE rätt under linjen som innehåller taggen motsvarande "! SUBENTRY 1" taggar


Exempel Input:
\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d
! INRESA com.bea.workshop.upgrade81 <OKAY> <RESOURCE: /fullpathr/Test.java> 2009-06-18 13:02:28.368
! MESSAGE Ansökande uppgradera rapport för ärende: Test.java

! INRESA com.bea.workshop.upgrade81 <OKAY> <RESOURCE: /fullpath/Test1.jpf> 2009-06-18 13:02:28.384
! MESSAGE Ansökande uppgradera rapport för ärende: Test1.jpf

! INRESA com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test2.jpf> 2009-06-18 13:02:28.447
! MESSAGE Ansökande uppgradera rapport för ärende: Test2.jpf
! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test2.jpf> 2009-06-18 13:02:28.447
! MESSAGE Java 5 beskrivningsdialogrutan Jpf.Controller läggas till.
! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test2.jpf> 2009-06-18 13:02:28.447
! MESSAGE Mer beskrivningsdialogrutan av Jpf.Action läggas till.

! INRESA com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! MESSAGE Ansökande uppgradera rapport för ärende: Test3.jpf
! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! MESSAGE Java 5 beskrivningsdialogrutan Jpf.Controller läggas till.
! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! MESSAGE lägger import av org.apache.beehive.netui.pageflow.annotations.Jpf för gemensamma ramen beskrivningsdialogrutan stöd.
! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! MESSAGE ABC läggas till.


Utgång för requirement1:
\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d
Test.java
Test1.jpf

Utgång för requirement2:
\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d
/ fullpath/Test2.jpf
Java 5 beskrivningsdialogrutan Jpf.Controller läggas till.
Mer beskrivningsdialogrutan av Jpf.Action läggas till.

/ fullpath/Test3.jpf
Java 5 beskrivningsdialogrutan Jpf.Controller läggas till.
Kommer lägga till import av org.apache.beehive.netui.pageflow.annotations.Jpf för gemensamma ramen beskrivningsdialogrutan stöd.
ABC läggas till.

Senast redigerad av hareeshram; 06-20-2009 vid 09:09..
  #2 (permalänk)  
Old 06-20-2009
scottn scottn is offline Forum Advisor  
VIP Medlem
  
 

Join Date: juni 2009
Plats: Zürich, CH
Inlägg: 1.046
Detta verk, men förmodligen bara om ditt bidrag är precis som du beskrev!

Kod:
echo "Output from requirement 1"
echo "========================="
grep "<OKAY>.*RESOURCE" infile | sed -e "s/.*RESOURCE:.*\/\(.*\)>.*/\1/" | sort -u

echo
echo "Output from requirement 2"
echo "========================="
awk '
  /^!ENTRY.*<INFO>/ { X = 1; sub( /.*RESOURCE: /, "", $0 ); sub( />.*/, "", $0 ); print }
  (X == 1) && (/^!SUBENTRY/) { X++ }
  (X > 1) && ($1 ~ /^!MESSAGE/) { sub( /!MESSAGE /, "", $0 ); print }
  (X > 1) && ($1 ~ /^$/) { print ""; X = 0 }
' infile
 
 
Output:
Output from requirement 1
=========================
Test1.jpf
Test.java
 
Output from requirement 2
=========================
/fullpath/Test2.jpf
The Java 5 annotation Jpf.Controller needs to be added.
More annotation of Jpf.Action needs to be added.
 
/fullpath/Test3.jpf
The Java 5 annotation Jpf.Controller needs to be added.
Will add import of org.apache.beehive.netui.pageflow.annotations.Jpf for JPF annotation support.
ABC needs to be added.

Senast redigerad av scottn; 06-20-2009 vid 10:44..
  #3 (permalänk)  
Old 06-20-2009
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
missbrukare
  
 

Join Date: Jan 2007
Ort: Варна, България / Milano, Italia
Inlägg: 2.847
Använda gawk, nawk eller /usr/xpg4/bin/awkSolaris:

1.

Kod:
awk '/<OKAY>/ { 
  sub(/>[^>]*$/, "")
  n = split($0, t, "/")
  print t[n]   
  }' infile
2.

Kod:
awk '!NF { f = 0 }
/^!ENTRY.*<INFO>/ {
  sub(/>[^>]*$/, "")
  sub(/.*RESOURCE: /, "")
  print; f = 1
  }  
f && /!SUBENTRY/ { f++ }   
f > 1 && sub(/!MESSAGE /, "")
' infile

Senast redigerad av radoulov; 06-20-2009 vid 10:48..
Bits Awarded / belasta radoulov för det här inlägget
Datum Användare Kommentera Belopp
06-22-2009 hareeshram Tack för smart lösning! 200
  #4 (permalänk)  
Old 06-20-2009
scottn scottn is offline Forum Advisor  
VIP Medlem
  
 

Join Date: juni 2009
Plats: Zürich, CH
Inlägg: 1.046
Sval!

Du vinner
  #5 (permalänk)  
Old 06-20-2009
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
missbrukare
  
 

Join Date: Jan 2007
Ort: Варна, България / Milano, Italia
Inlägg: 2.847
Citat:
Ursprungligen postat av scottn View Post
Sval!

Du vinner
Nej,
Jag måste göra koden mer generiska (Jag ändrade det för att ta bort de särskilda kolumner referenser).

Senast redigerad av radoulov; 06-20-2009 vid 11:08.. Orsak: fel uttalande:), din produktion är korrekt
  #6 (permalänk)  
Old 06-22-2009
hareeshram hareeshram is offline
Registered User
  
 

Join Date: mars 2007
Plats: Chennai
Inlägg: 3
Det var så snabb och korrekt!

Tack scottn och radoulov.
Det fungerade bra för mig

Jag har en liten förändring i form att jag skulle förvänta sig för både krav. Hoppas du vill föreslå mig.

Krav 1:

Filnamnen bör komma med fullständiga sökvägar

Krav 2:
Efter filnamnet (med fullständig sökväg), oavsett vilka meddelanden som visas (ett budskap till en linje), de skall visas utan dubbelarbete (samma meddelande i följande rader ska tas bort) per post och alla icke dubbleras uppgifter skall separted med kommatecken (snarare än nya linjen "). skillnad i ovanstående fall, både fil och kommaavgränsade meddelanden skall komma i samma rad.

Återigen många tack för att hålla min anda i Unix.

Exempel ingång
\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d

Exempel Input:
\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d
! INRESA com.bea.workshop.upgrade81 <OKAY> <RESOURCE: /fullpath/Test.java> 2009-06-18 13:02:28.368
! MESSAGE Ansökande uppgradera rapport för ärende: Test.java

! INRESA com.bea.workshop.upgrade81 <OKAY> <RESOURCE: /fullpath/Test1.jpf> 2009-06-18 13:02:28.384
! MESSAGE Ansökande uppgradera rapport för ärende: Test1.jpf

! INRESA com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test2.jpf> 2009-06-18 13:02:28.447
! MESSAGE Ansökande uppgradera rapport för ärende: Test2.jpf
! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test2.jpf> 2009-06-18 13:02:28.447
! MESSAGE Java 5 beskrivningsdialogrutan Jpf.Controller läggas till.
! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test2.jpf> 2009-06-18 13:02:28.447
! MESSAGE Mer beskrivningsdialogrutan av Jpf.Action läggas till.

! INRESA com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! MESSAGE Ansökande uppgradera rapport för ärende: Test3.jpf
! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! MESSAGE Java 5 beskrivningsdialogrutan Jpf.Controller läggas till.
! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! MESSAGE Java 5 beskrivningsdialogrutan Jpf.Controller läggas till.
! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! MESSAGE lägger import av org.apache.beehive.netui.pageflow.annotations.Jpf för gemensamma ramen beskrivningsdialogrutan stöd.
! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! MESSAGE ABC läggas till.
! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! MESSAGE ABC läggas till.


Utgång för requirement1:
\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d
/ fullpath / Test.java
/ fullpath/Test1.jpf

Utgång för requirement2:
\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d
/ fullpath/Test2.jpf (separerade med flik) Java 5 beskrivningsdialogrutan Jpf.Controller måste läggas Mer beskrivningsdialogrutan av Jpf.Action läggas till.
/ fullpath/Test3.jpf (separerade med flik) Java 5 beskrivningsdialogrutan Jpf.Controller måste läggas, kommer att lägga till import av org.apache.beehive.netui.pageflow.annotations.Jpf för gemensamma ramen beskrivningsdialogrutan stöd, ABC måste läggas .
Reply

Komihåglista

Taggar
log dellicensen

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 08:40.


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