The UNIX and Linux Forums  

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
Cambio de una columna del archivo delimitado por columna a columna de ancho fijo manneni Prakash Programación de scripts de shell y 5 06-22-2009 06:27 AM
files.say uno y dos b.both desde hace mucho tiempo columns.i quiere coincidir con la columna 1 de fronteras archivo w Mf UNIX for Dummies Preguntas y Respuestas 4 10-17-2008 02:17 PM
Insertar la primera línea de un archivo a la primera columna de los archivos restantes a_artha Programación de scripts de shell y 5 07-28-2008 06:47 AM
Cómo verificar los valores nulos en un archivo de la columna por columna si las columnas no son valores NULL Mandab Programación de scripts de shell y 7 03-15-2008 09:57 AM
cols de unirse a múltiples archivos en un archivo vbshuru Programación de scripts de shell y 2 11-20-2003 12:52 PM

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 Tasa de Hilo Modos de visualización
  #1 (Enlace permanente)  
Old 06-30-2009
bigsmile bigsmile is offline
Usuario Registrado
  
 

Fecha: junio 2009
Publicaciones: 4
Question Únete a 3 archivos usando una clave de la columna en el archivo de mapeo

Soy nuevo de UNIX shell scripting. Estoy recientemente un excelente informe de generación en UNIX (archivo con delimitador está bien). ¿Cómo debo hacer un script para hacerlo?

1 archivo a unirse viene de salida de un comando de UNIX, el segundo de otro comando de UNIX, y el tercero de una base de datos de consulta. La clave columes de todos estos 3 archivos proceden de un archivo de asignación. Se trata básicamente de la siguiente manera:

MappingFile:
\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d
job1 a_name1
job2 c_name2
job3 b_name3
job4 e_name4

file1_toJOIN:
\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d
b_name3 12:00:03 15:00:09
e_name4 10:30:00 11:00:00
c_name2 09:40:00 10:12:00
a_name1 22:00:00 23:00:00

file2_toJOIN:
\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d
job2 tom 22
job1 dan 18
job4 Jim 25
job3 kim 20

la hoja de cálculo para generar el formato:
\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
job1 22:00:00 23:00:00 01:00:00 dan 18
......

Apreciamos su ayuda!
  #2 (Enlace permanente)  
Old 07-01-2009
prasperl prasperl is offline
Usuario Registrado
  
 

Fecha: junio 2009
Puestos: 22
¡Prueba esto!

probar esta

i en el `gato mapa | awk 'BEGIN (FS \u003d" "), (print $ 1)'`
hacer
$ i \u003d mapkey1
mapkey2 \u003d `cat mapa | grep $ mapkey1»
mapkey2 \u003d `echo $ mapkey2 | awk 'BEGIN (FS \u003d" "), (print $ 2)'`
file1key \u003d `cat archivo1 | grep $ mapkey2»
file1key \u003d `echo $ file1key | awk 'BEGIN (FS \u003d" "), (print $ 2, $ 3)'`
file2key \u003d `cat archivo2 | grep $ mapkey1»
file2key \u003d `echo $ file2key | awk 'BEGIN (FS \u003d" "), (print $ 2, $ 3)'`
echo $ i $ file1key $ file2key
hecho


mapa - mapa de su archivo
archivo1 - su file1_toJOIN
archivo2 - file2_toJOIN:

El o / pi obtenido es el siguiente:
job1 22:00:00 23:00:00 dan 18
job2 09:40:00 10:12:00 tom 22
job3 12:00:03 15:00:09 kim 20
job4 10:30:00 11:00:00 Jim 25
  #3 (Enlace permanente)  
Old 07-01-2009
summer_cherry summer_cherry is offline Forum Advisor  
Usuario Registrado
  
 

Fecha: junio 2007
Ubicación: Beijing China
Mensajes: 1.088
Código:
nawk 'NR==FNR{
arr[$1]=$2
brr[$2]=$1
}
NR!=FNR{
	if (arr[$1]=="")
		brr[$1]=sprintf("%s %s",$2,$3)
	else
		print $1" "brr[arr[$1]]" "$2" "$3
}' map file1 file2
  #4 (Enlace permanente)  
Old 07-02-2009
bigsmile bigsmile is offline
Usuario Registrado
  
 

Fecha: junio 2009
Publicaciones: 4
Smile Únete a 3 de archivos mediante clave colume en un archivo de asignación

Apreciamos los dos.

He probado el primer script. Funciona perfectamente. Me siento un poco difícil de entender matriz, como un script de shell principiante. Pero voy a intentar mañana, como se ve realmente compacto. Me gustaría utilizar en el futuro.
  #5 (Enlace permanente)  
Old 07-03-2009
prasperl prasperl is offline
Usuario Registrado
  
 

Fecha: junio 2009
Puestos: 22
Con las observaciones para una mejor comprensión

# Abrir el archivo
i en el `gato mapa | awk 'BEGIN (FS \u003d" "), (print $ 1)'`
hacer

# Column1 mapa en el archivo es la clave para archivo2
$ i \u003d mapkey1

mapkey2 \u003d `cat mapa | grep $ mapkey1»

# Column2 en el mapa es clave para el archivo archivo1

mapkey2 \u003d `echo $ mapkey2 | awk 'BEGIN (FS \u003d" "), (print $ 2)'`

# Selección de valores de archivo1 basado en archivo de mapa de mapkey2
file1key \u003d `cat archivo1 | grep $ mapkey2»
file1key \u003d `echo $ file1key | awk 'BEGIN (FS \u003d" "), (print $ 2, $ 3)'`

# Selección de valores de archivo2 basada en archivo de mapa de mapkey1
file2key \u003d `cat archivo2 | grep $ mapkey1»
file2key \u003d `echo $ file2key | awk 'BEGIN (FS \u003d" "), (print $ 2, $ 3)'`

# Diplay los resultados
echo $ i $ file1key $ file2key
hecho
  #6 (Enlace permanente)  
Old 07-04-2009
bigsmile bigsmile is offline
Usuario Registrado
  
 

Fecha: junio 2009
Publicaciones: 4
Gracias, Prasperl.

Usé ksh, por alguna razón, me dio error awk Syntex. Después de haber eliminado separador de campo, que permiten a través de mí. ¿Sabe el motivo?
  #7 (Enlace permanente)  
Old 07-05-2009
prasperl prasperl is offline
Usuario Registrado
  
 

Fecha: junio 2009
Puestos: 22
¿Podría usted por favor enviar el código u utilizado y el mensaje de error?
Reply

Marcadores

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 12:32 PM.


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