2011-12-06 28 views
5

Tengo dos archivos de texto que tienen estas estructuras:Combinar columnas de diferentes archivos

de archivos 1

Column1:Column2 
Column1:Column2 
... 

Archivo 2

Column3 
Column3 
... 

me gustaría crear una archivo que tiene esta estructura de archivos:

Column1:Column3 
Column1:Column3 
... 

abierto a cualquier sugerencia, pero sería bueno si la solución se puede hacer desde un intérprete de comandos, o sed/awk/Perl/etc ...

Respuesta

11
cut -d: -f1 "File 1" | paste -d: - "File 2" 

Esto reduce el campo 1 del archivo 1 (delimitado por dos puntos) y lo pega con la única columna en el archivo 2, separando los campos de salida con dos puntos.

4

Aquí hay una solución awk. Asume que el archivo1 y el archivo2 tienen el mismo número de líneas.

awk -F : '{ printf "%s:",$1; getline < "file2"; print }' < file1 
2

Dado que no se ha sugerido una aplicación pura fiesta, asumiendo también el mismo número de líneas (sólo golpe v4):

mapfile -t file2 < file2 

index=0 
while IFS=: read -r column1 _; do 
     echo "$column1:${file2[index]}" 
     ((index++)) 
done < file1 

fiesta v3:

IFS=$'\n' read -r -d '' file2 < file2 

index=0 
while IFS=: read -r column1 _; do 
     echo "$column1:${file2[index]}" 
     ((index++)) 
done < file1 
Cuestiones relacionadas