The UNIX and Linux Forums  


Go Back   Die UNIX-und Linux-Foren > Top Foren > UNIX für Fortgeschrittene und Experten
.
Google unix.com



UNIX für Fortgeschrittene und Experten Expert-to-Experte. Erfahren Sie fortgeschrittene UNIX-, UNIX-Kommandos, Linux-Betriebssysteme, System-Administration, Programmierung, Shell, Shell-Skripte, Solaris, Linux, HP-UX, AIX, OS X, BSD.

Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
Faden Thread Starter Forum Antworten Last Post
Extrahieren von Text krabu Shell Programmierung und Scripting 3 04-07-2009 04:16 AM
Extrahieren von Text und die Wiederverwendung von Text-Datei umbenennen JohnDS UNIX for Dummies Questions & Answers 7 02-05-2009 03:55 AM
Extrahieren von Informationen aus Konfigurationsdateien / Textverarbeitung oconmx Shell Programmierung und Scripting 3 01-21-2009 07:09 PM
Hilfe für Ersetzen von Text in vi Chandu2u Shell Programmierung und Scripting 6 01-26-2008 11:12 AM
Hilfe erforderlich in Bezug auf Extrahieren von Zeilen aus einer Datei google_ever Shell Programmierung und Scripting 1 10-12-2005 08:02 AM

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 Suche diesen Thread Bewertung: Thread Rating: 1 votes, 4.00 average. Anzeige-Modi
  #1 (permalink)  
Old 06-20-2009
hareeshram hareeshram is offline
Registrierte Nutzer
  
 

Join Date: März 2007
Ort: Chennai
Beiträge: 3
Entpacken des gewünschten Text von Log-Dateien

Es wäre sehr spürbar, wenn einer hilft mir in diesem. Ich bin versucht, es durch Java, aber ich liebe Unix und glaube, es kann getan werden, innerhalb weniger Minuten mit paar Zeilen.

Die Input-Log-Datei ist eine Text-Datei enthält mehrere Einträge, getrennt durch eine Leerzeile.
Jeder Eintrag entspricht getrennt Upgrade-Prozess Informationen über eine Datei.

! ENTRY Text .....< INFO> oder <OKAY> <RESOURCE: /test/src/com/test1/*/test.java> 2009-06-18 13:01:01.181
! MELDUNGSTEXT Ersuchender Aktualisierungsbericht für Datei: test.java

! ENTRY Text .....< INFO> oder <OKAY> <RESOURCE: /test/src/com/test1/*/test1.java> 2009-06-18 13:01:01.181
Meldung in test1.java werden aktualisiert.
! Untereintrag 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: vollständigen Pfad /file name> 2009-06-18 13:02:25.681
Meldung wird für die Einfuhr von org.apache.beehive.netui.pageflow.annotations.Jpf JPF Annotation unterstützen.

Jeder Eintrag beginnt mit "! Eintrag" wie oben gezeigt und wird gefolgt von Text "com.bea.workshop.upgrade81" und dann wird es, gefolgt von
zwei Arten von Tags: <OKAY> und <INFO>
Und dann wird es von Tag <RESOURCE: enthält den vollständigen Pfad der Datei und dann gefolgt von Zeitstempel, wie oben gezeigt.

Wenn es <OKAY>, dann die zweite Zeile wird wie folgt
! MELDUNGSTEXT Ersuchender Aktualisierungsbericht für Datei: Dateiname (was nicht der große Bedeutung für meine Ausgabe)

Ex:
! ENTRY Text .....< INFO> oder <OKAY> <RESOURCE: /test/src/com/test1/*/test.java> 2009-06-18 13:01:01.181
! MELDUNGSTEXT Ersuchender Upgrade für Datei: Dateiname

Wenn es dann auch <INFO> zweiten Zeile wird wie
! MELDUNGSTEXT Ersuchender Aktualisierungsbericht für Datei: Dateiname
Aber es wird sicherlich gefolgt von einem weiteren Satz von mehreren Linienpaare mit Tags! Untereintrag, Meldung wie unten

! Untereintrag 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: path/filename> 2009-06-18 13:02:25.681
Meldung wird für die Einfuhr von org.apache.beehive.netui.pageflow.annotations.Jpf JPF Annotation unterstützen.


Meine Forderung ist wie folgt:

Anforderung 1

1) Für alle Einträge mit <OKAY> Tag, ich brauche um die Datei zu extrahieren, die Namen werden nach <RESOURCE :..... und vor Zeitstempel
Bitte beachten Sie die Einträge werden durch eine leere Zeile

Anforderung 2

2) Für alle Zeilen mit <INFO> Tag, ich möchte eine Text-Datei mit Einträgen wie diesem

Vollständiger Pfad und den Dateinamen und dann in der nächsten Zeile
Der gesamte Text nach! MESAAGE direkt unter der Zeile containg dem Tag der entsprechenden "! Untereintrag 1"-Tags


Beispiel Eingabe:
\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
! ENTRY com.bea.workshop.upgrade81 <OKAY> <RESOURCE: /fullpathr/Test.java> 2009-06-18 13:02:28.368
! MELDUNGSTEXT Ersuchender Aktualisierungsbericht für Datei: Test.java

! ENTRY com.bea.workshop.upgrade81 <OKAY> <RESOURCE: /fullpath/Test1.jpf> 2009-06-18 13:02:28.384
! MELDUNGSTEXT Ersuchender Aktualisierungsbericht für Datei: Test1.jpf

! ENTRY com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test2.jpf> 2009-06-18 13:02:28.447
! MELDUNGSTEXT Ersuchender Aktualisierungsbericht für Datei: Test2.jpf
! Untereintrag 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test2.jpf> 2009-06-18 13:02:28.447
! Nachricht Die Java 5 Annotationen Jpf.Controller muss hinzugefügt werden.
! Untereintrag 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test2.jpf> 2009-06-18 13:02:28.447
! MELDUNGSTEXT Mehr Annotation von Jpf.Action muss hinzugefügt werden.

! ENTRY com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! MELDUNGSTEXT Ersuchender Aktualisierungsbericht für Datei: Test3.jpf
! Untereintrag 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! Nachricht Die Java 5 Annotationen Jpf.Controller muss hinzugefügt werden.
! Untereintrag 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
Meldung wird für die Einfuhr von org.apache.beehive.netui.pageflow.annotations.Jpf JPF Annotation unterstützen.
! Untereintrag 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! MELDUNGSTEXT ABC muss hinzugefügt werden.


Ausgang 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

Ausgang 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
Die Java 5 Annotationen Jpf.Controller muss hinzugefügt werden.
Mehr Annotation von Jpf.Action muss hinzugefügt werden.

/ fullpath/Test3.jpf
Die Java 5 Annotationen Jpf.Controller muss hinzugefügt werden.
Wird die Einfuhr von org.apache.beehive.netui.pageflow.annotations.Jpf für JPF Annotation unterstützen.
ABC muss hinzugefügt werden.

Zuletzt bearbeitet von hareeshram; am 06-20-2009 10:09 AM..
  #2 (permalink)  
Old 06-20-2009
scottn scottn is online now Forum Advisor  
VIP-Mitglied
  
 

Join Date: Jun 2009
Ort: Zürich, CH
Posts: 1104
Dies funktioniert, aber wahrscheinlich nur, wenn Sie Ihre Eingabe wird genau beschrieben, wie Sie!


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.


Zuletzt bearbeitet von scottn; am 06-20-2009 11:44 AM..
  #3 (permalink)  
Old 06-20-2009
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
addict
  
 

Join Date: Jan 2007
Lage: Варна, България / Milano, Italia
Posts: 2915
Verwenden gawk, nawk oder /usr/xpg4/bin/awk auf 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


Zuletzt bearbeitet von radoulov; am 06-20-2009 11:48 AM..
Ausgezeichnet Bits / zu Lasten radoulov zu diesem Post
Datum User Kommentar Betrag
06-22-2009 hareeshram Vielen Dank für die intelligente Lösung! 200
  #4 (permalink)  
Old 06-20-2009
scottn scottn is online now Forum Advisor  
VIP-Mitglied
  
 

Join Date: Jun 2009
Ort: Zürich, CH
Posts: 1104
Kühl!

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

Join Date: Jan 2007
Lage: Варна, България / Milano, Italia
Posts: 2915
Zitat:
Zitat von scottn View Post
Kühl!

Sie gewinnen
Nein,
Ich brauche, um den Code mehr Generika (ich es nur geändert, um die spezifischen Spalten Referenzen).

Zuletzt bearbeitet von radoulov; am 06-20-2009 12:08 PM.. Grund: falsche Erklärung:), die Ausgabe korrekt ist
  #6 (permalink)  
Old 06-22-2009
hareeshram hareeshram is offline
Registrierte Nutzer
  
 

Join Date: März 2007
Ort: Chennai
Beiträge: 3
Das war so schnell und präzise!

Dank scottn und radoulov.
Es funktioniert für mich

Ich habe eine leichte Änderung in Format, dass ich erwarten würde für beide Anforderungen. Hoffe, Sie lassen mich.

Anforderung 1:

Die Dateinamen sollten mit voller Wege

Anforderung 2:
Nach den Namen der Datei (mit vollem Pfad), was auch immer die Nachrichten, die angezeigt werden (eine Nachricht für eine Zeile), werden sie angezeigt werden, ohne dass Doppelarbeit (die gleiche Nachricht in aufeinander folgenden Zeilen sollten entfernt) pro Eintrag und alle nicht dupliziert Einträge werden durch Komma getrennt (und nicht als neue Zeile "). Anders als in den oben genannten Fall, die Datei-und Komma getrennt Nachrichten sollten in der Zeile.

Noch einmal vielen vielen Dank für die Aufbewahrung der meinen Geist in Unix.

Beispiel Eingabe
\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d

Beispiel Eingabe:
\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
! ENTRY com.bea.workshop.upgrade81 <OKAY> <RESOURCE: /fullpath/Test.java> 2009-06-18 13:02:28.368
! MELDUNGSTEXT Ersuchender Aktualisierungsbericht für Datei: Test.java

! ENTRY com.bea.workshop.upgrade81 <OKAY> <RESOURCE: /fullpath/Test1.jpf> 2009-06-18 13:02:28.384
! MELDUNGSTEXT Ersuchender Aktualisierungsbericht für Datei: Test1.jpf

! ENTRY com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test2.jpf> 2009-06-18 13:02:28.447
! MELDUNGSTEXT Ersuchender Aktualisierungsbericht für Datei: Test2.jpf
! Untereintrag 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test2.jpf> 2009-06-18 13:02:28.447
! Nachricht Die Java 5 Annotationen Jpf.Controller muss hinzugefügt werden.
! Untereintrag 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test2.jpf> 2009-06-18 13:02:28.447
! MELDUNGSTEXT Mehr Annotation von Jpf.Action muss hinzugefügt werden.

! ENTRY com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! MELDUNGSTEXT Ersuchender Aktualisierungsbericht für Datei: Test3.jpf
! Untereintrag 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! Nachricht Die Java 5 Annotationen Jpf.Controller muss hinzugefügt werden.
! Untereintrag 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! Nachricht Die Java 5 Annotationen Jpf.Controller muss hinzugefügt werden.
! Untereintrag 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
Meldung wird für die Einfuhr von org.apache.beehive.netui.pageflow.annotations.Jpf JPF Annotation unterstützen.
! Untereintrag 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! MELDUNGSTEXT ABC muss hinzugefügt werden.
! Untereintrag 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! MELDUNGSTEXT ABC muss hinzugefügt werden.


Ausgang 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

Ausgang 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 (getrennt durch TAB) Die Java 5 Annotationen Jpf.Controller muss hinzugefügt werden, Mehr Annotation von Jpf.Action muss hinzugefügt werden.
/ fullpath/Test3.jpf (getrennt durch TAB) Die Java 5 Annotationen Jpf.Controller muss hinzugefügt werden, wird die Einfuhr von org.apache.beehive.netui.pageflow.annotations.Jpf für JPF Annotation Unterstützung, ABC muss hinzugefügt werden, .
Reply

Lesezeichen

Tags
Log-Extrakt

Thread Tools Suche diesen Thread
Suche diesen Thread:

Erweiterte Suche
Anzeige-Modi Rate this thread
Rate this thread:

Forumregeln
Du möglicherweise nicht neue Themen
Du möglicherweise nicht nach Antworten
Du möglicherweise nicht post-Anlagen
Du möglicherweise nicht bearbeiten Sie Ihre Beiträge

BB-Code ist Auf
Smilies sind Auf
[IMG] Code Auf
HTML-Code ist Aus
Trackbacks sind Auf
Pingbacks sind Auf
Refbacks sind Auf




Alle Zeiten sind GMT -4. Es ist jetzt 06:34 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Ltd. Sprachliche Übersetzungen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Die UNIX-und Linux-Foren Content © Copyright 1993-2009. Alle Rechte Reserved.Ad Management von RedTyger

Content Relevant URLs durch vBSEO 3.2.0