![]() |
Hola y bienvenida de los Estados Unidos a la UNIX y Linux Foros! Gracias por su visita y formar parte de nuestra comunidad global.
|
|
google unix.com
|
|||||||
| Foros | Registro | Reglas de los Foros | Enlaces | Álbumes | Preguntas más frecuentes | Lista de miembros | Calendario | Búsqueda | Puestos de hoy | Marcar Foros Como Leídos |
| 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 |
![]() |
|
|
Linkback vínculo | Herramientas de hilo | Buscar en este Hilo | Tasa de Hilo | Modos de visualización |
|
|
|
||||
|
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 Código:
num1 3 lion num1 13 tiger num1 84 bear num4 3 house num4 19 dog num4 77 mouse 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 |
|
||||
|
¿Qué has intentado hasta ahora?
|
|
||||
|
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 |
|
||||
|
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
archivo1 - su primer archivo archivo2 - su segundo archivo OUTFILE - el resultado de archivos |
|
||||
|
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
|
![]() |
| Marcadores |
| Herramientas de hilo | Buscar en este Hilo |
| Modos de visualización | Vota a este hilo |
|
|