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
La extracción de la secuencia de comandos de datos incorrectos de archivo de texto jermaine4ever Programación de scripts de shell y 6 03-16-2009 12:18 PM
Acceso incorrecto NEI? Juterassee Sun Solaris 5 10-30-2008 11:08 AM
inicio de sesión incorrectos espace1000 UNIX for Dummies Preguntas y Respuestas 2 08-22-2008 07:48 AM
Acceso incorrecto sydney2008 Red Hat 6 08-22-2008 05:57 AM
Directorio Nombre incorrecto jand102821 UNIX for Dummies Preguntas y Respuestas 1 06-19-2002 05:35 PM

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 04-21-2009
pináculo pinnacle is offline
Usuario Registrado
  
 

Fecha: abril 2009
Puestos: 182
Awk datos incorrectos.

Estoy utilizando el siguiente comando:


Código:
nawk -F"," 'NR==FNR {a[$2$3]=$1;next} a[$2$3] {print a[$2$3],$1,$2,$3}'  file1 file2

Estoy recibiendo 40 registros de salida.
Pero cuando la importación i archivo1 y archivo2 en MS Access i obtener 140 registros.
140 y sé que es correcto contar.

Apreciamos su ayuda en la corrección de la secuencia de comandos
  #2 (Enlace permanente)  
Old 04-21-2009
vgersh99's Avatar
vgersh99 vgersh99 is online now Forum Staff  
Moderador
  
 

Fecha: febrero 2005
Localización: Boston, MA
Mensajes: 5.131
Que ayudaría sin duda a si que nos ha facilitado una descripción más detallada de lo que estamos tratando de lograr con la muestra los archivos de datos y los resultados esperados.

Mi bola de cristal es un poco borrosa, pero:

Código:
nawk -F"," 'NR==FNR {a[$2,$3]=$1;next} ($2 SUBSEP $3) in a {print a[$2,$3],$1,$2,$3}'  OFS=, file1 file2

  #3 (Enlace permanente)  
Old 04-21-2009
pináculo pinnacle is offline
Usuario Registrado
  
 

Fecha: abril 2009
Puestos: 182
Cita:
Publicado originalmente por vgersh99 View Post
Que ayudaría sin duda a si que nos ha facilitado una descripción más detallada de lo que estamos tratando de lograr con la muestra los archivos de datos y los resultados esperados.

Mi bola de cristal es un poco borrosa, pero:

Código:
nawk -F"," 'NR==FNR {a[$2,$3]=$1;next} ($2 SUBSEP $3) in a {print a[$2,$3],$1,$2,$3}'  OFS=, file1 file2
vgersh99

Tengo dos archivos
$ Head archivo1
zip, Nombre, Apellido
07777, abc, def
22584, diciembre, DLO
25487, xyz, jkl
25488, tenue, kio

$ Head archivo2
servidor de base de datos objetivo
Número de Seguro Social, Nombre, Apellido
123456789, abc, def
123456789, diciembre, DLO
123456789, xyz, jkl
123456789, tenue, kio
Producto deseado:
Número de Seguro Social, código postal, nombre, apellido


Código:
nawk -F"," 'NR==FNR {a[$2,$3]=$1;next} ($2 SUBSEP $3) in a {print a[$2,$3],$1,$2,$3}'  OFS=,  " file2 file1
40 Matches


Código:
nawk -F"," 'NR==FNR {a[$2,$3]=$1;next} ($2 SUBSEP $3) in a {print a[$2,$3],$1,$2,$3}'  OFS=,  " file1 file2
140 matches

140 partidos es correcto, pero sé que ambos deben dar 140 no sé la razón por la que su diferencia.

¿Puede usted explicar por favor esta parte ($ 2 SUBSEP $ 3)
a [$ 2, $ 3] que estamos utilizando aquí, es porque su separados por comas de entrada o es norma general
I si no utilizar, entonces también estoy recibiendo mismo resultado
  #4 (Enlace permanente)  
Old 04-21-2009
vgersh99's Avatar
vgersh99 vgersh99 is online now Forum Staff  
Moderador
  
 

Fecha: febrero 2005
Localización: Boston, MA
Mensajes: 5.131
Cita:
Publicado originalmente por cenit View Post
vgersh99

Tengo dos archivos
$ Head archivo1
zip, Nombre, Apellido
07777, abc, def
22584, diciembre, DLO
25487, xyz, jkl
25488, tenue, kio

$ Head archivo2
servidor de base de datos objetivo
Número de Seguro Social, Nombre, Apellido
123456789, abc, def
123456789, diciembre, DLO
123456789, xyz, jkl
123456789, tenue, kio
Producto deseado:
Número de Seguro Social, código postal, nombre, apellido


Código:
nawk -F"," 'NR==FNR {a[$2,$3]=$1;next} ($2 SUBSEP $3) in a {print a[$2,$3],$1,$2,$3}'  OFS=,  " file2 file1
40 Matches


Código:
nawk -F"," 'NR==FNR {a[$2,$3]=$1;next} ($2 SUBSEP $3) in a {print a[$2,$3],$1,$2,$3}'  OFS=,  " file1 file2
140 matches
La por encima del 2 invocaciones son exactamente los mismos. No entiendo por qué usted está recibiendo resultados diferentes.
Asimismo, no entiendo por qué usted tiene una cita doble remolque (en rojo) en ambos casos?
Cita:
Publicado originalmente por cenit
140 partidos es correcto, pero sé que ambos deben dar 140 no sé la razón por la que su diferencia.

¿Puede usted explicar por favor esta parte ($ 2 SUBSEP $ 3)
a [$ 2, $ 3] que estamos utilizando aquí, es porque su separados por comas de entrada o es norma general
I si no utilizar, entonces también estoy recibiendo mismo resultado
No, no es porque el archivo está separado por comas. Usted puede construir su índice sólo concatenando las cadenas ($ 2 $ 3) o (lo que es mejor para su posterior procesamiento) por hacer esto:

Código:
a[$2,$3]

En el contexto de la serie del índice de construcción, la "," es sustituida por la interna de la variable awk SUBSEP. Si posteriormente usted decide "dividir" el índice (para encontrarlo partes) se puede dividir por SUBSEP. Si simplemente concatenar la cadena, no se puede reconstruir el índice de sus piezas originales.

La solución inicialmente envió debería darle el resultado deseado.
Habida cuenta de archivo1:

Código:
zip,FirstName,Lastname
07777,abc,def
22584,dec,dlo
25487,xyz,jkl
25488,dim,kio

y fichero2:

Código:
SSN,Firstname,LastName
123456789,abc,def
123456789,dec,dlo
123456789,xyz,jkl
123456789,dim,kio

ejecutando:

Código:
nawk -F, 'NR==FNR {a[$2,$3]=$1;next} ($2 SUBSEP $3) in a {print a[$2,$3],$1,$2,$3}'  OFS=, file2 file1

Resultados en:

Código:
123456789,07777,abc,def
123456789,22584,dec,dlo
123456789,25487,xyz,jkl
123456789,25488,dim,kio

Revise su archivo1 y archivo2 - ver si existe alguna discrepancia está y / o espacios incrustados.

Además, este NO es uno de los primeros puestos del foro y que ha sido pedido en el pasado: por favor utilice BB Código de etiquetas al publicar los datos o ejemplos de código.
  #5 (Enlace permanente)  
Old 04-21-2009
pináculo pinnacle is offline
Usuario Registrado
  
 

Fecha: abril 2009
Puestos: 182
Cita:
Publicado originalmente por vgersh99 View Post
La por encima del 2 invocaciones son exactamente los mismos. No entiendo por qué usted está recibiendo resultados diferentes.
Asimismo, no entiendo por qué usted tiene una cita doble remolque (en rojo) en ambos casos?

No, no es porque el archivo está separado por comas. Usted puede construir su índice sólo concatenando las cadenas ($ 2 $ 3) o (lo que es mejor para su posterior procesamiento) por hacer esto:

Código:
a[$2,$3]

En el contexto de la serie del índice de construcción, la "," es sustituida por la interna de la variable awk SUBSEP. Si posteriormente usted decide "dividir" el índice (para encontrarlo partes) se puede dividir por SUBSEP. Si simplemente concatenar la cadena, no se puede reconstruir el índice de sus piezas originales.

La solución inicialmente envió debería darle el resultado deseado.
Habida cuenta de archivo1:

Código:
zip,FirstName,Lastname
07777,abc,def
22584,dec,dlo
25487,xyz,jkl
25488,dim,kio

y fichero2:

Código:
SSN,Firstname,LastName
123456789,abc,def
123456789,dec,dlo
123456789,xyz,jkl
123456789,dim,kio

ejecutando:

Código:
nawk -F, 'NR==FNR {a[$2,$3]=$1;next} ($2 SUBSEP $3) in a {print a[$2,$3],$1,$2,$3}'  OFS=, file2 file1

Resultados en:

Código:
123456789,07777,abc,def
123456789,22584,dec,dlo
123456789,25487,xyz,jkl
123456789,25488,dim,kio

Revise su archivo1 y archivo2 - ver si existe alguna discrepancia está y / o espacios incrustados.

Además, este NO es uno de los primeros puestos del foro y que ha sido pedido en el pasado: por favor utilice BB Código de etiquetas al publicar los datos o ejemplos de código.

Código:
nawk -F"," 'NR==FNR {a[$2,$3]=$1;next} ($2 SUBSEP $3) in a {print a[$2,$3],$1,$2,$3}'  OFS=, file1 file2

En el código anterior si archivo1 y cambiar la posición, fie2 i obtener resultados diferentes.
No puedo publicar los archivos de datos debido a la sensibilidad.
Yo a un control visual de los archivos y no veo caracteres especiales ni nada.
¿Hay un comando especial para verificar esto.

Agradecemos su respuesta.
  #6 (Enlace permanente)  
Old 04-22-2009
vgersh99's Avatar
vgersh99 vgersh99 is online now Forum Staff  
Moderador
  
 

Fecha: febrero 2005
Localización: Boston, MA
Mensajes: 5.131
Cita:
Publicado originalmente por cenit View Post
Código:
nawk -F"," 'NR==FNR {a[$2,$3]=$1;next} ($2 SUBSEP $3) in a {print a[$2,$3],$1,$2,$3}'  OFS=, file1 file2

En el código anterior si archivo1 y cambiar la posición, fie2 i obtener resultados diferentes.
No puedo publicar los archivos de datos debido a la sensibilidad.
Yo a un control visual de los archivos y no veo caracteres especiales ni nada.
¿Hay un comando especial para verificar esto.

Agradecemos su respuesta.
Paciente: Doctor, realmente duele cuando hago eso!
Doctor: Entonces no lo hace eso!

Las posiciones de los archivos en la línea de comandos es importante para el mapeo de los campos de un archivo a la otra. Busque sus archivos de datos en los campos - tratar de ver la diferencia y ver su anuncio original de la cartografía de la lógica.
Buena suerte.
Closed Thread

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 02:33 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