Combinar archivos de dos columnas en un archivo


2

Tengo un montón de archivos ( file1, file2, file3, ...) con dos columnas. Por ejemplo, se file1ve así:

0.12 0
0.32 0
0.42 1
0.23 0

y se file2parece a:

0.34 1
0.55 1
0.31 1
0.99 0

Me pregunto cómo combinar correctamente estos archivos en un archivo con solo las primeras columnas. El archivo de salida debería ser como:

0.12 0.34
0.32 0.55
0.42 0.31
0.23 0.99

Mi intento inicial (sin éxito) está aquí:

pr -t -s ',' -m <(< file1 | cut -d ' ' -f 1) <(< file2 | cut -d ' ' -f 1)

La respuesta de Steve demuestra que su enunciado del problema no está claro. Describa más claramente lo que quiere decir con "fusionar" y muestre dos o más archivos de muestra (probablemente sea suficiente mostrar solo dos o tres líneas de cada uno) y luego muestre el resultado deseado . Por cierto, ¿estás garantizando que todos los archivos tienen la misma longitud (si es apropiado)?
Scott

1
Por cierto, no va a funcionar. Intente (omitiendo ) o (colocando la redirección de E / S al final del comando). < filename | command< filename  command|command < filename
Scott

Gracias, eso me ayuda mucho. La siguiente línea funciona:pr -t -s' ' -m <(< file1 cut -d ' ' -f 1) <(< file2 cut -d ' ' -f 1 )
Andrej

1
(La ventana de edición de cinco minutos se acabó). Por cierto, no va a funcionar. Intente (omitiendo ) o   (colocando la redirección de E / S al final del comando). De hecho, la mayoría de los comandos (incluidos ) leerán de los archivos cuyo nombre (s) se pasan como argumentos, por lo que puede decir simplemente . < filename | command< filename  command|command < filenamecutcommand filename
Scott

Respuestas:


2

Como la cantidad de archivos es grande, awk suena como una buena opción:

awk '
    {line[FNR] = line[FNR] $1 OFS}
    END {for (i=1; i<=FNR; i++) print line[i]}
' file1 file2 file3 ...

0

Enfoque simple:

$ cat file1
0.12 0
0.32 0
0.42 1
0.23 0
$ cat file2
0.92 0
0.92 0
0.92 1
0.93 0
$ cat file1 file2 | cut -f1 -d" "
0.12
0.32
0.42
0.23
0.92
0.92
0.92
0.93
$

Necesito agregar nuevos archivos por columnas.
Andrej
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.