The UNIX and Linux Forums  

Go Back   El UNIX y Linux Foros > Arriba Foros > UNIX para usuarios avanzados y expertos
.
google unix.com



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

Reply
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback vínculo Herramientas de hilo Buscar en este Hilo Calificación: Thread Rating: 1 votes, 4.00 average. Modos de visualización
  #1 (Enlace permanente)  
Old 06-20-2009
hareeshram hareeshram is offline
Usuario Registrado
  
 

Fecha: marzo 2007
Ubicación: Madrid
Publicaciones: 3
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..
  #2 (Enlace permanente)  
Old 06-20-2009
scottn scottn is offline Forum Advisor  
Miembro VIP
  
 

Fecha: junio 2009
Ubicación: Zürich, CH
Puestos: 1.134
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..
  #3 (Enlace permanente)  
Old 06-20-2009
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
adicto
  
 

Fecha: enero 2007
Ubicación: Варна, България / Milán, Italia
Mensajes: 2.928
Usar gawk, nawk o /usr/xpg4/bin/awk encendido Solaris:

1.


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

2.


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


Última edición por radoulov; al 06-20-2009 11:48 AM..
Otorgado bits / Imputados a radoulov para este post
Fecha Usuario Comentario Cantidad
06-22-2009 hareeshram Gracias por la solución inteligente! 200
  #4 (Enlace permanente)  
Old 06-20-2009
scottn scottn is offline Forum Advisor  
Miembro VIP
  
 

Fecha: junio 2009
Ubicación: Zürich, CH
Puestos: 1.134
Fresco!

Usted gana
  #5 (Enlace permanente)  
Old 06-20-2009
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
adicto
  
 

Fecha: enero 2007
Ubicación: Варна, България / Milán, Italia
Mensajes: 2.928
Cita:
Publicado originalmente por scottn View Post
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
  #6 (Enlace permanente)  
Old 06-22-2009
hareeshram hareeshram is offline
Usuario Registrado
  
 

Fecha: marzo 2007
Ubicación: Madrid
Publicaciones: 3
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 .
Reply

Marcadores

Etiquetas
extracto de registro

Herramientas de hilo Buscar en este Hilo
Buscar en este Hilo:

Búsqueda avanzada
Modos de visualización Vota a este hilo
Vota a este hilo:

Normas de envío
puede que no nuevo puesto de hilos
puede que no enviar respuestas
puede que no enviar archivos adjuntos
puede que no editar sus puestos

Código BB es Encendido
Emoticones son Encendido
[IMG] código Encendido
Código HTML es Apagado
Trackbacks son Encendido
Pingbacks son Encendido
Refbacks son Encendido




Todas las horas son GMT -4. La hora es 05:19 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traducciones de idiomas Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Estudios
El UNIX y Linux Foros Contenido Copyright © 1993-2009. Todos los derechos Reserved.Ad Gestión por RedTyger

Las direcciones URL de contenido vBSEO 3.2.0