The UNIX and Linux Forums  
Ciao e benvenuto da parte degli Stati Uniti al UNIX e Linux Forum! Grazie per la visita ed unirsi alla nostra Comunità Globale.

Go Back   UNIX e Linux Forum > Inizio Forum > UNIX e avanzata per utenti esperti
.
google unix.com



UNIX e avanzata per utenti esperti Expert-to-Expert. Ulteriori avanzata UNIX, comandi UNIX, Linux, Sistemi Operativi, System Administration, Programmazione, Shell, Shell Script, Solaris, Linux, HP-UX, AIX, OS X, BSD.

Più di UNIX e Linux Forum Argomenti potreste trovare utili
Filo Thread Starter Forum Risposte Ultimo Post
Estrazione di testo krabu Shell scripting e di programmazione 3 04-07-2009 03:16 AM
l'estrazione di testo e il riutilizzo di rinominare il file di testo JohnDS UNIX for Dummies Domande & Risposte 7 02-05-2009 03:55 AM
Estrarre informazioni da file di configurazione / elaborazione del testo oconmx Shell scripting e di programmazione 3 01-21-2009 07:09 PM
aiuto necessario per sostituire il testo in vi Chandu2u Shell scripting e di programmazione 6 01-26-2008 11:12 AM
Aiuto richieste in materia di estrazione di linee da un file google_ever Shell scripting e di programmazione 1 10-12-2005 07: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 Cerca in questo Thread Rating: Thread Rating: 1 votes, 4.00 average. Modalità di visualizzazione
  #1 (permalink)  
Old 06-20-2009
hareeshram hareeshram is offline
Utente Registrato
  
 

Iscriviti Data: marzo 2007
Località: Chennai
Interventi: 3
Estrarre il testo richiesto da file di log

Sarebbe altamente apprezzabile se qualcuno mi aiuta in questo. Sto cercando di farlo attraverso Java, ma io amo unix e credo che può essere fatto in pochi minuti con due linee.

L'ingresso di file di log è un file di testo contiene più voci separate da una riga vuota.
Ogni ingresso separato corrisponde a processo di aggiornamento delle informazioni in un unico file.

! ENTRATA testo .....< INFO> o <OKAY> <RESOURCE: /test/src/com/test1/*/test.java> 2009-06-18 13:01:01.181
! MESSAGGIO Richiesta relazione di aggiornamento per il file: test.java

! ENTRATA testo .....< INFO> o <OKAY> <RESOURCE: /test/src/com/test1/*/test1.java> 2009-06-18 13:01:01.181
! MESSAGGIO in test1.java informazioni saranno aggiornate.
! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: percorso completo /file name> 2009-06-18 13:02:25.681
! Messaggio aggiungere importazione di org.apache.beehive.netui.pageflow.annotations.Jpf per QCP annotazione sostegno.

Ogni voce inizia con "! ENTRATA", come indicato sopra e sarà seguita da un testo "com.bea.workshop.upgrade81" e poi sarà seguita da
due tipi di tag: <OKAY> e <INFO>
E poi sarà seguita da tag <RISORSA: che contiene il percorso completo del file e poi seguite da tempo timbro come sopra indicato.

Se è <OKAY>, poi in seconda linea sarà come di seguito
! MESSAGGIO Richiesta relazione di aggiornamento per il file: il nome del file (che non è di grande importanza per la mia uscita)

Es:
! ENTRATA testo .....< INFO> o <OKAY> <RESOURCE: /test/src/com/test1/*/test.java> 2009-06-18 13:01:01.181
! MESSAGGIO Richiesta relazione di aggiornamento per il file: nome file

Se è <INFO> quindi anche in seconda linea sarà come
! MESSAGGIO Richiesta relazione di aggiornamento per il file: nome file
Ma non sarà certamente seguito da un altro set di coppie multiple linea di partenza con i tag! SUBENTRY,! MESSAGGIO come di seguito

! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: path/filename> 2009-06-18 13:02:25.681
! Messaggio aggiungere importazione di org.apache.beehive.netui.pageflow.annotations.Jpf per QCP annotazione sostegno.


La mia esigenza è, come di seguito:

Requisito 1

1) Per tutte le voci contenenti <OKAY> tag, ho bisogno di estrarre i nomi dei file che verranno dopo <RISORSA :..... prima volta e timbro
Si prega di notare le voci sono separate da una riga vuota

Requisito 2

2) Per tutte le linee con tag <INFO>, vorrei avere un file di testo con le voci di questo tipo

Percorso completo e il nome del file e poi nella riga successiva
Tutto il testo dopo! MESAAGE destra al di sotto della linea che contiene il tag corrispondente di "! SUBENTRY 1" tag


Esempio di ingresso:
\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
! ENTRATA com.bea.workshop.upgrade81 <OKAY> <RESOURCE: /fullpathr/Test.java> 2009-06-18 13:02:28.368
! MESSAGGIO Richiesta relazione di aggiornamento per il file: Test.java

! ENTRATA com.bea.workshop.upgrade81 <OKAY> <RESOURCE: /fullpath/Test1.jpf> 2009-06-18 13:02:28.384
! MESSAGGIO Richiesta relazione di aggiornamento per il file: Test1.jpf

! ENTRATA com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test2.jpf> 2009-06-18 13:02:28.447
! MESSAGGIO Richiesta relazione di aggiornamento per il file: Test2.jpf
! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test2.jpf> 2009-06-18 13:02:28.447
! MESSAGGIO Il Java 5 annotazione Jpf.Controller deve essere aggiunto.
! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test2.jpf> 2009-06-18 13:02:28.447
! MESSAGGIO Altre annotazioni di Jpf.Action deve essere aggiunto.

! ENTRATA com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! MESSAGGIO Richiesta relazione di aggiornamento per il file: Test3.jpf
! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! MESSAGGIO Il Java 5 annotazione Jpf.Controller deve essere aggiunto.
! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! Messaggio aggiungere importazione di org.apache.beehive.netui.pageflow.annotations.Jpf per QCP annotazione sostegno.
! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! MESSAGGIO ABC deve essere aggiunto.


Uscita per 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

Uscita per 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 annotazione Jpf.Controller deve essere aggiunto.
Più di Jpf.Action annotazione deve essere aggiunto.

/ fullpath/Test3.jpf
Java 5 annotazione Jpf.Controller deve essere aggiunto.
Può aggiungere l'importazione di org.apache.beehive.netui.pageflow.annotations.Jpf per QCP annotazione sostegno.
ABC deve essere aggiunto.

Ultimo a cura di hareeshram; al 06/20/2009 09:09 AM..
  #2 (permalink)  
Old 06-20-2009
scottn scottn is offline Forum Advisor  
VIP Member
  
 

Iscriviti Data: giugno 2009
Location: Zurigo, CH
Messaggi: 1.046
Questo funziona, ma probabilmente solo se il vostro ingresso è esattamente come descritto!

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

Ultimo a cura di scottn; al 06/20/2009 10:44 AM..
  #3 (permalink)  
Old 06-20-2009
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
addict
  
 

Iscriviti Data: gennaio 2007
Ubicazione: Варна, България / Milano, Italia
Interventi: 2.848
Utilizzo gawk, nawk o /usr/xpg4/bin/awk su Solaris:

1.

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

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

Ultimo a cura di radoulov; al 06/20/2009 10:48 AM..
Bit Assegnati / a carico radoulov per questo post
Data Utente Commento Quantità
06-22-2009 hareeshram Grazie per la soluzione intelligente! 200
  #4 (permalink)  
Old 06-20-2009
scottn scottn is offline Forum Advisor  
VIP Member
  
 

Iscriviti Data: giugno 2009
Location: Zurigo, CH
Messaggi: 1.046
Fresco!

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

Iscriviti Data: gennaio 2007
Ubicazione: Варна, България / Milano, Italia
Interventi: 2.848
Citazione:
Originalmente inviato da scottn View Post
Fresco!

È vincere
No,
Ho bisogno per rendere il codice più generico (ho appena modificati per rimuovere le colonne specifici riferimenti).

Ultimo a cura di radoulov; al 06/20/2009 11:08 AM.. Motivo: errata dichiarazione:), l'output è corretto
  #6 (permalink)  
Old 06-22-2009
hareeshram hareeshram is offline
Utente Registrato
  
 

Iscriviti Data: marzo 2007
Località: Chennai
Interventi: 3
Questo è stato così rapido e preciso!

Grazie scottn e radoulov.
Ha funzionato bene per me

Ho un leggero cambiamento nel formato che mi aspetto sia per i requisiti. La speranza si suggerisce di me.

Requisito 1:

I nomi dei file dovrebbero venire con percorsi

Requisito 2:
Dopo il nome del file (con il percorso completo), qualunque sia i messaggi che vengono visualizzati (un messaggio di una riga), essi devono essere visualizzati senza duplicazione (lo stesso messaggio in consecutivi linee dovrebbero essere rimossi) per l'ingresso e non tutti i duplicati le voci devono essere separted da virgola (piuttosto che la nuova linea "). differenza nel caso di cui sopra, sia di file e separati da virgole messaggi dovrebbero provenire in un'unica riga.

Ancora una volta, molte grazie per mantenere il mio spirito in unix.

Esempio di input
\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d

Esempio di ingresso:
\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
! ENTRATA com.bea.workshop.upgrade81 <OKAY> <RESOURCE: /fullpath/Test.java> 2009-06-18 13:02:28.368
! MESSAGGIO Richiesta relazione di aggiornamento per il file: Test.java

! ENTRATA com.bea.workshop.upgrade81 <OKAY> <RESOURCE: /fullpath/Test1.jpf> 2009-06-18 13:02:28.384
! MESSAGGIO Richiesta relazione di aggiornamento per il file: Test1.jpf

! ENTRATA com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test2.jpf> 2009-06-18 13:02:28.447
! MESSAGGIO Richiesta relazione di aggiornamento per il file: Test2.jpf
! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test2.jpf> 2009-06-18 13:02:28.447
! MESSAGGIO Il Java 5 annotazione Jpf.Controller deve essere aggiunto.
! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test2.jpf> 2009-06-18 13:02:28.447
! MESSAGGIO Altre annotazioni di Jpf.Action deve essere aggiunto.

! ENTRATA com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! MESSAGGIO Richiesta relazione di aggiornamento per il file: Test3.jpf
! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! MESSAGGIO Il Java 5 annotazione Jpf.Controller deve essere aggiunto.
! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! MESSAGGIO Il Java 5 annotazione Jpf.Controller deve essere aggiunto.
! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! Messaggio aggiungere importazione di org.apache.beehive.netui.pageflow.annotations.Jpf per QCP annotazione sostegno.
! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! MESSAGGIO ABC deve essere aggiunto.
! SUBENTRY 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634
! MESSAGGIO ABC deve essere aggiunto.


Uscita per 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

Uscita per 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 (separato da tabulazione) Il Java 5 annotazione Jpf.Controller deve essere aggiunto, di annotazioni Più di Jpf.Action deve essere aggiunto.
/ fullpath/Test3.jpf (separato da tabulazione) Il Java 5 annotazione Jpf.Controller deve essere aggiunto, si aggiungerà l'importazione di org.apache.beehive.netui.pageflow.annotations.Jpf per QCP annotazione sostegno, ABC deve essere aggiunto .
Reply

Segnalibri

Tag
Accedi estratto

Thread Tools Cerca in questo Thread
Cerca in questo Thread:

Ricerca Avanzata
Modalità di visualizzazione Vota questo thread
Vota questo thread:

Distacco regolamento
Tu non può post nuovo thread
Tu non può inviare una risposta
Tu non può postare allegati
Tu non può modificare i tuoi post

BB codice è Su
Smilies sono Su
[IMG] codice Su
Codice HTML è Chiuso
Trackbacks sono Su
Pingbacks sono Su
Refbacks sono Su




Tutti gli orari sono GMT -4. La data di oggi è 07:44 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traduzioni Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX e Linux Forum Content Copyright © 1993-2009. Tutti i diritti Reserved.Ad di gestione da RedTyger

Contenuti pertinenti URL da vBSEO 3.2.0