![]() |
|
|
google unix.com
|
|||||||
| Foros | Registro | Reglas de los Foros | Enlaces | Álbumes | Preguntas más frecuentes | Lista de miembros | Calendario | Búsqueda | Puestos de hoy | Marcar Foros Como Leídos |
| UNIX para usuarios avanzados y expertos Experto a experto. Aprender avanzada UNIX, los comandos de UNIX, Linux, Sistemas Operativos, Administración de Sistemas, Programación, Shell, Shell Scripts, Solaris, Linux, HP-UX, AIX, OS X, BSD. |
Más UNIX y Linux Foro Temas usted puede encontrar útiles
|
||||
| Hilo | Hilo para principiantes | Foro | Respuestas | Último mensaje |
| Extracción de Texto | krabu | Programación de scripts de shell y | 3 | 04-07-2009 04:16 AM |
| la extracción de texto y la reutilización de texto para cambiar el nombre de archivo | JohnDS | UNIX for Dummies Preguntas y Respuestas | 7 | 02-05-2009 03:55 AM |
| Extraer información de los archivos de configuración / procesamiento de textos | oconmx | Programación de scripts de shell y | 3 | 01-21-2009 07:09 PM |
| ayuda necesaria para la sustitución de texto en vi | Chandu2u | Programación de scripts de shell y | 6 | 01-26-2008 11:12 AM |
| Ayuda necesaria en relación con las líneas de extracción de un archivo | google_ever | Programación de scripts de shell y | 1 | 10-12-2005 08:02 AM |
![]() |
|
|
Linkback vínculo | Herramientas de hilo | Buscar en este Hilo |
Calificación:
|
Modos de visualización |
|
|
|
||||
|
Extraer el texto de los archivos de registro
Sería muy apreciable si alguno me ayuda en esto. Estoy tratando de conseguir que hacerse a través de Java, pero me encanta unix y creo que se puede hacer en cuestión de minutos, con par de líneas.
El archivo de registro de entrada es un archivo de texto contiene varias entradas separadas por una línea en blanco. Cada entrada corresponde a separarse proceso de actualización de información de un archivo. ! ENTRADA texto .....< INFO> o <OKAY> <RESOURCE: /test/src/com/test1/*/test.java> 2009-06-18 13:01:01.181 ! MENSAJE Solicitando informe de actualización para el archivo: test.java ! ENTRADA texto .....< INFO> o <OKAY> <RESOURCE: /test/src/com/test1/*/test1.java> 2009-06-18 13:01:01.181 ! MENSAJE test1.java información se actualice. ! Subentrada 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: ruta completa /file name> 2009-06-18 13:02:25.681 ! Mensaje añadir la importación de org.apache.beehive.netui.pageflow.annotations.Jpf JPF anotación de apoyo. Cada entrada comienza con "! ENTRADA" como se muestra arriba y será seguido por el texto "com.bea.workshop.upgrade81" y luego será seguida por dos tipos de etiquetas: <OKAY> y <INFO> Y entonces será seguida de la etiqueta <RECURSOS: que contiene la ruta completa del archivo y, a continuación, seguido de la marca de tiempo como se muestra arriba. Si es <OKAY>, entonces la segunda línea será la continuación ! MENSAJE Solicitando informe de actualización para el archivo: nombre de archivo (que no es de mucha importancia para mi salida) Ej: ! ENTRADA texto .....< INFO> o <OKAY> <RESOURCE: /test/src/com/test1/*/test.java> 2009-06-18 13:01:01.181 ! MENSAJE Solicitando informe de actualización para el archivo: nombre de archivo Si es <INFO> también la segunda línea será como ! MENSAJE Solicitando informe de actualización para el archivo: nombre de archivo Pero sin duda será seguido por otro conjunto de varias líneas de pares a partir de las etiquetas! Subentrada,! MENSAJE como a continuación ! Subentrada 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: path/filename> 2009-06-18 13:02:25.681 ! Mensaje añadir la importación de org.apache.beehive.netui.pageflow.annotations.Jpf JPF anotación de apoyo. Mi exigencia es como a continuación: Requisito 1 1) Para todas las entradas que contengan <OKAY> etiqueta, tengo que extraer los nombres de archivo que será después de <RECURSOS :..... y antes de sello de tiempo Por favor tenga en cuenta las entradas están separadas por una línea en blanco Requisito 2 2) Para todas las líneas con <INFO> etiqueta, me gustaría tener un archivo de texto con entradas como esta Ruta de acceso completa y el nombre del archivo y luego en la siguiente línea Después de todo el texto! MESAAGE derecho debajo de la línea containg de la etiqueta correspondiente "! Subentrada 1" etiquetas Ejemplo de entrada: \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 ! ENTRADA com.bea.workshop.upgrade81 <OKAY> <RESOURCE: /fullpathr/Test.java> 2009-06-18 13:02:28.368 ! MENSAJE Solicitando informe de actualización para el archivo: Test.java ! ENTRADA com.bea.workshop.upgrade81 <OKAY> <RESOURCE: /fullpath/Test1.jpf> 2009-06-18 13:02:28.384 ! MENSAJE Solicitando informe de actualización para el archivo: Test1.jpf ! ENTRADA com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test2.jpf> 2009-06-18 13:02:28.447 ! MENSAJE Solicitando informe de actualización para el archivo: Test2.jpf ! Subentrada 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test2.jpf> 2009-06-18 13:02:28.447 ! MENSAJE El Java 5 anotación Jpf.Controller hay que añadir. ! Subentrada 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test2.jpf> 2009-06-18 13:02:28.447 ! MENSAJE anotación Más de Jpf.Action hay que añadir. ! ENTRADA com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634 ! MENSAJE Solicitando informe de actualización para el archivo: Test3.jpf ! Subentrada 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634 ! MENSAJE El Java 5 anotación Jpf.Controller hay que añadir. ! Subentrada 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634 ! Mensaje añadir la importación de org.apache.beehive.netui.pageflow.annotations.Jpf JPF anotación de apoyo. ! Subentrada 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634 ! MENSAJE ABC hay que añadir. Salida para 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 Salida para 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 El Java 5 anotación Jpf.Controller hay que añadir. Más de anotación Jpf.Action hay que añadir. / fullpath/Test3.jpf El Java 5 anotación Jpf.Controller hay que añadir. Añade importación de org.apache.beehive.netui.pageflow.annotations.Jpf para JPF anotación apoyo. ABC hay que añadir. Última edición por hareeshram; al 06-20-2009 10:09 AM.. |
|
||||
|
Esto funciona, pero probablemente sólo si su aportación es exactamente como lo describe! Código:
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.
Última edición por scottn; al 06-20-2009 11:44 AM.. |
| Otorgado bits / Imputados a radoulov para este post | |||
| Fecha | Usuario | Comentario | Cantidad |
| 06-22-2009 | hareeshram | Gracias por la solución inteligente! | 200 |
|
||||
|
Fresco!
Usted gana ![]() |
|
|||||
|
No,
Tengo que hacer el código más genérico (Acabo modificados para eliminar las referencias específicas de las columnas). Última edición por radoulov; al 06-20-2009 12:08 PM.. Exposición de motivos: mal estado:), la salida es correcta |
|
||||
|
Que fue tan rápido y preciso!
Gracias scottn y radoulov.
Funcionó bien para mí Tengo un ligero cambio en el formato que yo esperaría de ambos requisitos. Espero que usted me sugiere. Requisito 1: Los nombres de archivo debe venir con rutas completas Requisito 2: Después de que el nombre de archivo (con ruta completa), independientemente de los mensajes que se muestran (un mensaje de una línea), que se muestra sin ningún tipo de duplicaciones (el mismo mensaje en líneas consecutivas deben eliminarse) por la entrada y la no duplicación de todos los las entradas deben ser separted por una coma (en vez de nueva línea "). A diferencia del caso anterior, tanto el archivo de mensajes separados por comas y debe venir en la misma línea. Una vez más muchas gracias por mantener mi espíritu en unix. Ejemplo de entrada \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d Ejemplo de entrada: \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 ! ENTRADA com.bea.workshop.upgrade81 <OKAY> <RESOURCE: /fullpath/Test.java> 2009-06-18 13:02:28.368 ! MENSAJE Solicitando informe de actualización para el archivo: Test.java ! ENTRADA com.bea.workshop.upgrade81 <OKAY> <RESOURCE: /fullpath/Test1.jpf> 2009-06-18 13:02:28.384 ! MENSAJE Solicitando informe de actualización para el archivo: Test1.jpf ! ENTRADA com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test2.jpf> 2009-06-18 13:02:28.447 ! MENSAJE Solicitando informe de actualización para el archivo: Test2.jpf ! Subentrada 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test2.jpf> 2009-06-18 13:02:28.447 ! MENSAJE El Java 5 anotación Jpf.Controller hay que añadir. ! Subentrada 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test2.jpf> 2009-06-18 13:02:28.447 ! MENSAJE anotación Más de Jpf.Action hay que añadir. ! ENTRADA com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634 ! MENSAJE Solicitando informe de actualización para el archivo: Test3.jpf ! Subentrada 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634 ! MENSAJE El Java 5 anotación Jpf.Controller hay que añadir. ! Subentrada 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634 ! MENSAJE El Java 5 anotación Jpf.Controller hay que añadir. ! Subentrada 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634 ! Mensaje añadir la importación de org.apache.beehive.netui.pageflow.annotations.Jpf JPF anotación de apoyo. ! Subentrada 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634 ! MENSAJE ABC hay que añadir. ! Subentrada 1 com.bea.workshop.upgrade81 <INFO> <RESOURCE: /fullpath/Test3.jpf> 2009-06-18 13:02:28.634 ! MENSAJE ABC hay que añadir. Salida para 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 Salida para 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 (separados por tabulaciones) El Java 5 anotación Jpf.Controller hay que añadir, más la anotación de Jpf.Action hay que añadir. / fullpath/Test3.jpf (separados por tabulaciones) El Java 5 anotación Jpf.Controller hay que añadir, Will añadir importación de org.apache.beehive.netui.pageflow.annotations.Jpf para JPF anotación apoyo, ABC hay que añadir . |
![]() |
| Marcadores |
| Etiquetas |
| extracto de registro |
| Herramientas de hilo | Buscar en este Hilo |
| Modos de visualización | Vota a este hilo |
|
|