![]() |
Ciao e benvenuto da parte degli Stati Uniti al UNIX e Linux Forum! Grazie per la visita ed unirsi alla nostra Comunità Globale.
|
|
google unix.com
|
|||||||
| Forum | Registrati | Regole Forum | Collegamenti | Album | FAQ | Members List | Calendario | Ricerca | Today's Posts | Mark Forums Read |
| 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 |
![]() |
|
|
LinkBack | Thread Tools | Cerca in questo Thread |
Rating:
|
Modalità di visualizzazione |
|
|
|
||||
|
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.. |
|
||||
|
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.. |
| Bit Assegnati / a carico radoulov per questo post | |||
| Data | Utente | Commento | Quantità |
| 06-22-2009 | hareeshram | Grazie per la soluzione intelligente! | 200 |
|
|||||
|
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 |
|
||||
|
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 . |
![]() |
| Segnalibri |
| Tag |
| Accedi estratto |
| Thread Tools | Cerca in questo Thread |
| Modalità di visualizzazione | Vota questo thread |
|
|