The UNIX and Linux Forums  


Go Back   De Unix-en Linux Forum > Top Forums > UNIX for Advanced & Expert Gebruikers
.
google unix.com



UNIX for Advanced & Expert Gebruikers Expert-to-Expert. Hier geavanceerde UNIX-, UNIX-commando's, Linux, Operating Systems, System Administration, programmering, Shell, Shell scripts, Solaris, Linux, HP-UX, AIX, OS X, BSD.

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
Extracting Tekst krabu Programmeren en Shell Scripting 3 04-07-2009 04:16
het extraheren van tekst en het hergebruik van de tekst te hernoemen bestand JohnDS UNIX voor Dummies Questions & Answers 7 02-05-2009 03:55
De extractie van gegevens uit Configuratiebestanden / tekst verwerken oconmx Programmeren en Shell Scripting 3 01-21-2009 07:09 PM
hulp nodig voor het vervangen van tekst in vi Chandu2u Programmeren en Shell Scripting 6 01-26-2008 11:12
Hulp nodig met betrekking tot Extracting regels uit een bestand google_ever Programmeren en Shell Scripting 1 10-12-2005 08: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 Zoeken in deze Thread Waardering: Thread Rating: 1 votes, 4.00 average. Display Modes
  #1 (permalink)  
Old 06-20-2009
hareeshram hareeshram is offline
Geregistreerde gebruiker
  
 

Join Datum: maart 2007
Locatie: Chennai
Posten: 3
Winning van de benodigde tekst van logbestanden

Het zou zeer merkbaar als iemand me helpt in deze. I am trying to get it geschieden door middel van Java, maar ik hou van Unix en geloof dat het gedaan kan worden binnen enkele minuten met een paar lijnen.

De input log-bestand is een tekstbestand bevat meerdere items worden gescheiden door een lege regel.
Elke gescheiden binnenkomst komt overeen met upgradeprocedure informatie van een bestand.

! INTREDE tekst .....< INFO> of <OKAY> <RESOURCE: /test/src/com/test1/*/test.java> 2009-06-18 13:01:01.181
! MESSAGE Verzoekend upgraderapport voor bestand: test.java

! INTREDE tekst .....< INFO> of <OKAY> <RESOURCE: /test/src/com/test1/*/test1.java> 2009-06-18 13:01:01.181
! MESSAGE informatie in test1.java zullen worden opgewaardeerd.
! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: volledige pad /file naam> 2009-06-18 13:02:25.681
! Bericht toevoegen invoer van org.apache.beehive.netui.pageflow.annotations.Jpf voor gezamenlijk meerjarig programmeringsproces respectievelijk annotatie ondersteuning.

Elk item begint met "! ENTRY", zoals hierboven weergegeven en worden gevolgd door de tekst "com.bea.workshop.upgrade81" en vervolgens zal worden gevolgd door
twee types van tags: <OKAY> en <INFO>
En dan zal worden gevolgd door de tag <RESOURCE: bevat het volledige pad van het bestand en daarna gevolgd door de tijd stempel, zoals hierboven weergegeven.

Als het <OKAY>, dan de tweede regel wordt als volgt
! MESSAGE Verzoekend upgraderapport voor bestand: bestandsnaam (wat niet van veel belang voor mijn output)

Ex:
! INTREDE tekst .....< INFO> of <OKAY> <RESOURCE: /test/src/com/test1/*/test.java> 2009-06-18 13:01:01.181
! MESSAGE Verzoekend upgraderapport voor bestand: bestandsnaam

Als het dan ook <INFO> tweede lijn zal worden als
! MESSAGE Verzoekend upgraderapport voor bestand: bestandsnaam
Maar het zal zeker worden gevolgd door een reeks van meerdere lijn paren beginnen met tags! SUBENTRY,! MESSAGE zoals hieronder

! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: path/filename> 2009-06-18 13:02:25.681
! Bericht toevoegen invoer van org.apache.beehive.netui.pageflow.annotations.Jpf voor gezamenlijk meerjarig programmeringsproces respectievelijk annotatie ondersteuning.


Mijn eis is als volgt:

Eis 1

1) Voor alle items die <OKAY> tag, ik nodig om het bestand namen die zullen worden na <RESOURCE :..... en vóór time stamp
Let op de items worden gescheiden door een lege regel

Eis 2

2) Voor alle lijnen met <INFO> tag, ik wil een tekst bestand met de tekst zoals deze

Volledige pad en de naam van het bestand en vervolgens in de volgende regel
Alle tekst na! MESAAGE recht onder de lijn containg de tag van de overeenkomstige "! SUBENTRY 1" tags


Voorbeeld 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
! INTREDE com.bea.workshop.upgrade81 <OKAY> <RESOURCE: /fullpathr/Test.java> 2009-06-18 13:02:28.368
! MESSAGE Verzoekend upgraderapport voor bestand: Test.java

! INTREDE com.bea.workshop.upgrade81 <OKAY> <RESOURCE: /fullpath/Test1.jpf> 2009-06-18 13:02:28.384
! MESSAGE Verzoekend upgraderapport voor bestand: Test1.jpf

! INTREDE com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test2.jpf> 2009-06-18 13:02:28.447
! MESSAGE Verzoekend upgraderapport voor bestand: Test2.jpf
! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test2.jpf> 2009-06-18 13:02:28.447
! MESSAGE De Java 5 annotatie Jpf.Controller moet worden toegevoegd.
! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test2.jpf> 2009-06-18 13:02:28.447
! MESSAGE Meer annotatie van Jpf.Action moet worden toegevoegd.

! INTREDE com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! MESSAGE Verzoekend upgraderapport voor bestand: Test3.jpf
! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! MESSAGE De Java 5 annotatie Jpf.Controller moet worden toegevoegd.
! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! Bericht toevoegen invoer van org.apache.beehive.netui.pageflow.annotations.Jpf voor gezamenlijk meerjarig programmeringsproces respectievelijk annotatie ondersteuning.
! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! MESSAGE ABC moet worden toegevoegd.


Output voor 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

Output voor 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 annotatie Jpf.Controller moet worden toegevoegd.
Meer annotatie van Jpf.Action moet worden toegevoegd.

/ fullpath/Test3.jpf
Java 5 annotatie Jpf.Controller moet worden toegevoegd.
Zal de invoer van org.apache.beehive.netui.pageflow.annotations.Jpf voor het gezamenlijk meerjarig programmeringsproces respectievelijk annotatie ondersteuning.
ABC moet worden toegevoegd.

Laatst gewijzigd door hareeshram; op 06.20.2009 10:09..
  #2 (permalink)  
Old 06-20-2009
scottn scottn is online now Forum Advisor  
VIP Lid
  
 

Join Date: juni 2009
Locatie: Zürich, CH
Berichten: 1.099
Dit werkt, maar waarschijnlijk alleen als uw input is precies zoals je beschreven!


Code:
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.


Laatst gewijzigd door scottn; op 06.20.2009 11:44..
  #3 (permalink)  
Old 06-20-2009
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
addict
  
 

Join Date: Jan 2007
Locatie: Варна, България / Milano, Italia
Berichten: 2.915
Gebruiken gawk, nawk of /usr/xpg4/bin/awk aan Solaris:

1.


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

2.


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


Laatst gewijzigd door radoulov; op 06.20.2009 11:48..
Bits Awarded / Geladen om radoulov voor dit bericht
Datum Gebruiker Commentaar Hoeveelheid
06-22-2009 hareeshram Bedankt voor de slimme oplossing! 200
  #4 (permalink)  
Old 06-20-2009
scottn scottn is online now Forum Advisor  
VIP Lid
  
 

Join Date: juni 2009
Locatie: Zürich, CH
Berichten: 1.099
Koel!

Jij wint
  #5 (permalink)  
Old 06-20-2009
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
addict
  
 

Join Date: Jan 2007
Locatie: Варна, България / Milano, Italia
Berichten: 2.915
Citaat:
Oorspronkelijk geplaatst door scottn View Post
Koel!

Jij wint
Nee,
Ik moet de code meer generieke (I just modified het om de specifieke kolommen verwijzingen).

Laatst gewijzigd door radoulov; op 06.20.2009 12:08.. Reden: verkeerde statement:), de uitvoer is juist
  #6 (permalink)  
Old 06-22-2009
hareeshram hareeshram is offline
Geregistreerde gebruiker
  
 

Join Datum: maart 2007
Locatie: Chennai
Posten: 3
Dat was zo snel en nauwkeurig!

Dankzij scottn en radoulov.
Het werkte prima voor mij

Ik heb een kleine verandering in de indeling die ik zou verwachten voor zowel eisen. Hoop dat je zou me.

Eis 1:

De bestandsnamen moeten komen met volledige paden

Eis 2:
Na de naam van het bestand (met volledige pad), ongeacht de berichten die worden weergegeven (een boodschap voor een lijn), ze worden weergegeven zonder enige overlapping (hetzelfde bericht in opeenvolgende regels dienen te worden verwijderd) per item en alle niet gedupliceerd vermeldingen moeten worden separted door een komma (in plaats van nieuwe regel "). Anders dan in het bovenstaande geval zowel bestand en kommagescheiden berichten moet komen in de interne lijn.

Nogmaals heel veel dank voor het bijhouden van mijn geest in Unix.

Voorbeeld input
\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d

Voorbeeld 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
! INTREDE com.bea.workshop.upgrade81 <OKAY> <RESOURCE: /fullpath/Test.java> 2009-06-18 13:02:28.368
! MESSAGE Verzoekend upgraderapport voor bestand: Test.java

! INTREDE com.bea.workshop.upgrade81 <OKAY> <RESOURCE: /fullpath/Test1.jpf> 2009-06-18 13:02:28.384
! MESSAGE Verzoekend upgraderapport voor bestand: Test1.jpf

! INTREDE com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test2.jpf> 2009-06-18 13:02:28.447
! MESSAGE Verzoekend upgraderapport voor bestand: Test2.jpf
! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test2.jpf> 2009-06-18 13:02:28.447
! MESSAGE De Java 5 annotatie Jpf.Controller moet worden toegevoegd.
! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test2.jpf> 2009-06-18 13:02:28.447
! MESSAGE Meer annotatie van Jpf.Action moet worden toegevoegd.

! INTREDE com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! MESSAGE Verzoekend upgraderapport voor bestand: Test3.jpf
! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! MESSAGE De Java 5 annotatie Jpf.Controller moet worden toegevoegd.
! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! MESSAGE De Java 5 annotatie Jpf.Controller moet worden toegevoegd.
! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! Bericht toevoegen invoer van org.apache.beehive.netui.pageflow.annotations.Jpf voor gezamenlijk meerjarig programmeringsproces respectievelijk annotatie ondersteuning.
! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! MESSAGE ABC moet worden toegevoegd.
! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! MESSAGE ABC moet worden toegevoegd.


Output voor 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

Output voor 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 (gescheiden door een tab) De Java 5 annotatie Jpf.Controller moet worden toegevoegd, Meer annotatie van Jpf.Action moet worden toegevoegd.
/ fullpath/Test3.jpf (gescheiden door een tab) De Java 5 annotatie Jpf.Controller moet worden toegevoegd, zal de invoer van org.apache.beehive.netui.pageflow.annotations.Jpf voor het gezamenlijk meerjarig programmeringsproces respectievelijk annotatie ondersteuning, ABC moet worden toegevoegd .
Reply

Bladwijzers

Labels
log uittreksel

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 07:32.


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