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
comparar dos archivos y eliminar las coincidencias en los archivos shellscripter Programación de scripts de shell y 4 06-20-2009 09:48 AM
se pongan en venta la cadena en dos archivos de diferente longitud ad_meis Programación de scripts de shell y 2 05-19-2009 11:49 AM
Se pongan en venta y la combinación de dos archivos sickboy Programación de scripts de shell y 3 07-17-2008 01:20 PM
Se pongan en venta y la combinación de dos archivos p3t3r Programación de scripts de shell y 5 05-20-2008 11:16 AM
Encontrar coincidencias entre el 2 de archivos jojojmac5 UNIX for Dummies Preguntas y Respuestas 5 01-18-2007 01:06 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 07-01-2009
kylle345 kylle345 is offline
Usuario Registrado
  
 

Fecha: mayo 2009
Puestos: 46
Coincidencia de 2 archivos

Hola,

Soy capaz de modificar los archivos (un archivo), pero tengo dificultades para trabajar con varios archivos simultáneamente.

Por lo tanto, tengo dos archivos. Básicamente quiero hacer coincidir dos archivos sobre la base de ciertas columnas. Ambos archivos están ficha-seperated.

Archivo1 ve algo como esto:
Código:
num1  89  george
num4  78  bob
Archivo 2 es un archivo mucho mayor y espera somethign como este:
Código:
num1  3    lion
num1  13  tiger
num1  84  bear
num4  3    house
num4  19  dog
num4  77  mouse
Así que lo que quiero hacer es coincidir con la columna 1 de Files1 y 2. También quiero restar la columna 2 de ambos archivos. Por lo tanto, cuando se trate de un partido, que desea imprimir (en un archivo aparte) la fila con la menor diferencia de la columna 2.

Así que para mi ejemplo anterior, el archivo de salida se vería así

num1 5 george oso
1 bob num4 ratón


gracias

Última edición por Yogesh Sawant; al 07-05-2009 11:29 AM.. Motivo: añadido etiquetas de código
  #2 (Enlace permanente)  
Old 07-02-2009
rakeshawasthi rakeshawasthi is offline
Usuario Registrado
  
 

Fecha: agosto 2004
Ubicación: India
Posts: 379
¿Qué has intentado hasta ahora?
  #3 (Enlace permanente)  
Old 07-02-2009
lathavim lathavim is offline
Usuario Registrado
  
 

Fecha: junio 2009
Puestos: 73
Ver si esto ayuda.
Código:
while read value1
do
a=`echo $value1 | cut -d ' ' -f1`
b=`echo $value1 | cut -d ' ' -f2`
c=`echo $value1 | cut -d ' ' -f3`
while read value2
do
a1=`echo $value2 | cut -d ' ' -f1`
b1=`echo $value2 | cut -d ' ' -f2`
c1=`echo $value2 | cut -d ' ' -f3`
if [ "$a" = "$a1" ]
then
b2=`expr $b - $b1`
echo $a $b2 $c $c1 >>outfile
fi
done<file2
done <file1
sort -o outfile2 -2 outfile
while read out1
do
x=`echo $out1 | cut -d ' ' -f1`
grep $x outfile2 | head -1 >>finalout
grep -v $x outfile2 >tmp
mv tmp outfile2
done<outfile2

Última edición por Yogesh Sawant; al 07-05-2009 11:28 AM.. Motivo: añadido etiquetas de código
  #4 (Enlace permanente)  
Old 07-02-2009
palsevlohit_123 palsevlohit_123 is offline
Usuario Registrado
  
 

Fecha: agosto 2008
Ubicación: India-Madrás
Puestos: 120
Pruebe esta ...


Código:
while read value1
do
        a=`echo $value1 | cut -d ' ' -f1`
        b=`echo $value1 | cut -d ' ' -f2`
        c=`echo $value1 | cut -d ' ' -f3`
        x=`grep "$a" file2|sort -nr -k2,2|head -1|cut -d' ' -f1`
        y=`grep "$a" file2|sort -nr -k2,2|head -1|cut -d' ' -f2`
        z=`grep "$a" file2|sort -nr -k2,2|head -1|cut -d' ' -f3`
        Diff=`expr $b - $y`
        echo "$a $Diff $c $z" >>outfile
done <file1
Nota:
archivo1 - su primer archivo
archivo2 - su segundo archivo
OUTFILE - el resultado de archivos
  #5 (Enlace permanente)  
Old 07-02-2009
rakeshawasthi rakeshawasthi is offline
Usuario Registrado
  
 

Fecha: agosto 2004
Ubicación: India
Posts: 379
Tuve la solución esté lista, pero que quería darle una oportunidad ...
Código:
find_corresponding_least_val()
{
   cat file2 | grep "$_key" | awk '{
      if((val-$2) < _diff) {
         _diff=val-$2; args=$3
      }
      else
         _diff=val-$2
   }
      END {
         printf("%s\t%s\t%s\n", key, _diff, args)
   }' key="$_key" val="$_val"
}

while read line
do
   _key=`echo $line | awk '{print $1}`
   _val=`echo $line | awk '{print $2}`
   _args=`echo $line | awk '{print $3}`
   find_corresponding_least_val $_key $_val
done < file1
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 11:34 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