Unix - Consulta comando diff

 
Vista:

Consulta comando diff

Publicado por pablo (1 intervención) el 06/03/2007 14:42:53
Tengo el siguiente problema:

Tengo dos archivos:

arch1:
1;1;1;3,4;5;6;7
1;1;2;3;4;7;8;9
1;1;3;4;5;7;8;9

arch2:

1;1;2;3;4

Creo lo que quiero hacer es lo siguiente

obtener todas las lineas del primera archivo que esten el segundo pero comparando solo por los 3 primeros campos

El resultado seria:

1;1;1;3,4;5;6;7
1;1;3;4;5;7;8;9

Creo que con diff se puede hacer pero no tengo idea.... sino con algun otro comando

Espero me puedan ayudar

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Consulta comando diff

Publicado por Tom (178 intervenciones) el 08/03/2007 15:14:15
cut -d";" -f1-3 arch2 | while read L
do
grep "^$L" arch1
done
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta comando diff

Publicado por Marco Cortes (2 intervenciones) el 16/04/2007 18:28:41
creo que seria mas optimo hacer uso del comano JOIN

join -j1 1 -j1 2 -j1 3 -j2 1 -j2 2 -j2 3 -o 1.1 1.2 1.3 1.4 1.5 1.6 1.7 -t";" arch1 arch2

-j1 1 -j1 2 -j1 3 -> Le estas indicando que tome los primeros 3 campos como llave del primer archivo (j1 --> arch1)

-j2 1 -j2 2 -j2 3 -> le estas indicando que tome los primeros 3 campos como llave del segundo archivo (j2-> arch2)

-o 1.1 1.2 1.3 1.4 1.5 1.6 1.7 --> le indicas que en la salida deje los 7 primeros campos del archivo 1.

-t";" --> indicas el separador
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar