The UNIX and Linux Forums  
Hola y bienvenida de los Estados Unidos a la UNIX y Linux Foros! Gracias por su visita y formar parte de nuestra comunidad global.

Go Back   El UNIX y Linux Foros > Arriba Foros > Programación de scripts de shell y
.
google unix.com



Programación de scripts de shell y Plantear preguntas sobre KSH, CSH, SH, BASH, PERL, PHP, SED, AWK y otros scripts de shell y lenguajes de script de shell aquí.

Más UNIX y Linux Foro Temas usted puede encontrar útiles
Hilo Hilo para principiantes Foro Respuestas Último mensaje
Reino Unido rehuir las empresas en tiempo real de análisis de datos iBOT Complejo de Procesamiento de Eventos Noticias RSS 0 07-14-2008 07:30 PM
Introducción a datos en tiempo real de integración iBOT Oracle Actualizaciones (RSS) 0 04-06-2008 05:10 AM
la fusión de datos CSV utilizando una línea de un depósito? jjinca Programación de scripts de shell y 2 08-13-2007 11:15 AM
¿Necesita ayuda para 2 archivo de datos de fusión getdpg Programación de scripts de shell y 2 07-12-2006 09:07 AM
La fusión de datos REV Programación de scripts de shell y 8 06-03-2005 03:14 AM

Closed Thread
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 Tasa de Hilo Modos de visualización
  #1 (Enlace permanente)  
Old 07-17-2008
Ikon's Avatar
Ikon Ikon is offline Forum Advisor  
Usuario Registrado
  
 

Fecha: julio 2008
Ubicación: Phoenix, Arizona
Puestos: 669
La fusión de pasado y datos sobre el tiempo de syslog

Esto es en un sistema HP-UX.

Tengo que fusionar los 2 informes, por cada línea en syslog tengo que buscar que fue registrado en el pts / # basado en la fecha de la last.txt informe.

Esto es lo que me sale de sulog.log

cat syslog | grep "su:" | grep "14 de junio"


Julio 14 08:02:48 server1 su: - 2 usuario1-root
Julio 14 09:13:23 server1 su: + 2 usuario1-root
Julio 14 12:03:03 server1 su: + 2 usuario1-root
Julio 14 18:15:13 server1 su: + 3 usuario2-root
Julio 14 15:03:01 server1 su: + 4 user7-root

- 2 \u003d pts / 2
+ 2 \u003d pts / 2
+ 3 \u003d pts / 3
etc ...





Este último informe es de:

cabeza last.txt | grep "14 de julio"
user1 pts / 2 10.0.0.1 jue 14 de julio 08:00 - 10:00 (02:00)
user1 pts / 2 10.0.0.2 jue 14 de julio 11:00 - 13:00 (02:00)
usuario2 pts / 3 10.0.0.3 Miércoles 14 de julio 16:00 - 20:00 (04:00)
user7 pts / 4 hostx Miércoles 14 de julio 13:25 - 16:01 (02:35)
.
.
.
.

Así que podría obtener:

Julio 14 08:02:48 server1 su: - 2 usuario1-root 10.0.0.1
Julio 14 09:13:23 server1 su: + 2 usuario1-root 10.0.0.1
Julio 14 12:03:03 server1 su: + 2 usuario1-root 10.0.0.2
Julio 14 18:15:13 server1 su: + 3 usuario2-root 10.0.0.3
Julio 14 15:03:01 server1 su: + 4 user7 raíz hostx

Cualquier ayuda sería grande.

Última edición por Ikon; 07-17-2008 en 11:33 AM..
  #2 (Enlace permanente)  
Old 07-17-2008
Franklin52 Franklin52 is offline Forum Staff  
Moderador
  
 

Fecha: febrero 2007
Mensajes: 4.301
Si tienes la primera producción en archivo1 y la segunda salida en archivo2:

Código:
awk '
NR==FNR{split($2,s,"/");i=s[2];a[i]=$3;next}
a[$7]{$0=$0 FS a[$7]}
{print}
' file2 file1
Si obtiene errores de uso nawk, o gawk / usr/xpg4/bin/awk en Solaris.

Recuerdos
  #3 (Enlace permanente)  
Old 07-17-2008
Ikon's Avatar
Ikon Ikon is offline Forum Advisor  
Usuario Registrado
  
 

Fecha: julio 2008
Ubicación: Phoenix, Arizona
Puestos: 669
Cita:
Publicado originalmente por Franklin52 View Post
Si tienes la primera producción en archivo1 y la segunda salida en archivo2:

Código:
awk '
NR==FNR{split($2,s,"/");i=s[2];a[i]=$3;next}
a[$7]{$0=$0 FS a[$7]}
{print}
' file2 file1
You Rock, que funciona muy ...

Un par de preguntas ...
Im still learing awk ... ¿Puede explicar cómo funciona esto .. Lo que lo haga no me han de preguntar acerca de otros scripts en el futuro y que pueda ayudar a otros más.

Realmente agradezco.
  #4 (Enlace permanente)  
Old 07-17-2008
Franklin52 Franklin52 is offline Forum Staff  
Moderador
  
 

Fecha: febrero 2007
Mensajes: 4.301
Código:
awk '
NR==FNR{split($2,s,"/");i=s[2];a[i]=$3;next}
a[$7]{$0=$0 FS a[$7]}
{print}
' file2 file1
Explicación:

El código para el primer archivo (archivo2):

Código:
NR==FNR{split($2,s,"/");i=s[2];a[i]=$3;next}
NR \u003d\u003d FNR -> Es cierto cuando leemos el primer archivo.
división ($ 2, s ,"/") -> Nos dividimos el segundo campo para obtener las claves 2, 3 etc
i \u003d s [2] -> I es la clave
a [i] \u003d $ 3 -> Crear una matriz "a" con la clave como índice y asignar el valor de las 3 de campo a la matriz
siguiente -> Leer la siguiente línea y pase el resto del código

El código para el segundo archivo (archivo1):

Código:
a[$7]{$0=$0 FS a[$7]}
{print}
un [$ 7] ($ 0 \u003d $ 0 FS un [$ 7]) -> Si el 7 de campo existe en el conjunto adjuntar una fieldseperator y el valor de la matriz después de la línea (este es el campo de la 3 ª el primer archivo)
(print) -> La línea de impresión.

Espero que esta ayuda.

Recuerdos
  #5 (Enlace permanente)  
Old 07-17-2008
Ikon's Avatar
Ikon Ikon is offline Forum Advisor  
Usuario Registrado
  
 

Fecha: julio 2008
Ubicación: Phoenix, Arizona
Puestos: 669
bien hay un problema, no hay ninguna comprobación sobre la base de tiempo.

Yo tendría que comprobar para ver que se ha iniciado sesión en el pts / # basan en lo que vez que se registran.

Sé que puedo hacerlo en perl, Sino que más bien no.

si tengo:

Julio 14 08:02:48 server1 su: - 0 usuario1-root
Julio 14 09:13:23 server1 su: + 0 usuario1-root
Julio 14 12:03:03 server1 su: + 0 usuario1-root
Julio 14 18:15:13 server1 su: + 0 usuario2-root
Julio 14 15:03:01 server1 su: + 0 user7-root


y


user1 pts / 0 10.0.0.1 jue 14 de julio 08:00 - 10:00 (02:00)
user1 pts / 0 10.0.0.2 jue 14 de julio 11:00 - 13:00 (02:00)
usuario2 pts / 0 10.0.0.3 Miércoles 14 de julio 16:00 - 20:00 (04:00)
user7 pts / 0 hostx Miércoles 14 de julio 13:25 - 15:01 (02:35)

Obtener:

Julio 14 08:02:48 server1 su: - 0 usuario1 raíz hostx
Julio 14 09:13:23 server1 su: + 0 usuario1-root hostx
Julio 14 12:03:03 server1 su: + 0 usuario1-root hostx
Julio 14 18:15:13 server1 su: + 0 usuario2 raíz hostx
Julio 14 15:03:01 server1 su: + 0 user7 raíz hostx

Última edición por Ikon; 07-17-2008 en 02:56 PM..
  #6 (Enlace permanente)  
Old 07-17-2008
Franklin52 Franklin52 is offline Forum Staff  
Moderador
  
 

Fecha: febrero 2007
Mensajes: 4.301
Usted debe tener en común una o más campos (clave) en los dos archivos a los archivos.

Recuerdos
  #7 (Enlace permanente)  
Old 07-17-2008
Ikon's Avatar
Ikon Ikon is offline Forum Advisor  
Usuario Registrado
  
 

Fecha: julio 2008
Ubicación: Phoenix, Arizona
Puestos: 669
Cita:
Publicado originalmente por Franklin52 View Post
Usted debe tener en común una o más campos (clave) en los dos archivos a los archivos.

Recuerdos
Campos comunes

Nombre de usuario: "userX" \u003d "userX" xxxxxxxx -

pts: pts / "#" \u003d - "#" userX .......

Hora: ##:##:## dentro de ##:## - ##:##

que no será suficiente?
Closed Thread

Marcadores

Etiquetas
solaris

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 07:53 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