Tengo un archivo con dos columnas como

1 1
2 3
3 4

y un archivo con una columna como

6
7
9

Me gustaría añadir el segundo archivo en el primero. La salida debe ser:

1 1 6
2 3 7
3 4 9

3 Comentarios

  1. 37
    $ pr -mts' ' file1 file2
    1 1 6
    2 3 7
    3 4 9
    
    $ paste -d' ' file1 file2
    1 1 6
    2 3 7
    3 4 9
    • Básica paste sin -d parámetro debería funcionar, supongo.
    • el delimitador predeterminado con paste es una ficha.
    • Aaaah yo vea. +1 para esto!
    • i don t entender por qué cuando me de la impresión dentro de un archivo que pone a la tercera columna de dígitos en una nueva fila
    • que comando provocó que la salida?
    • Puede usted explicar a sí mismo más claramente? Supongo que usted está hablando acerca de la redirección, estos dos comandos no fallará, si usted redirigir su salida a un archivo.
    • pegar -d’ ‘ file1 file2 > archivo3

  2. 8
    awk 'NR==FNR{a[NR]=$0;next}{print a[FNR],$0}' file1 file2

    Nota: Va a trabajar con los archivos de la misma longitud. Si el archivo longitudes’ son diferentes, vaya con sudo_O del solución.


    Sólo para la base de la misma, aquí es un awk comando que creo que debería simular paste. Puramente para la diversión, aunque, si yo fuera usted, me gustaría ir con sudo_O del solución (o no!)

    awk 'NR==FNR{a[++y]=$0;next}{b[++x]=$0}
    END{z=x>y?x:y;while(++i<=z){print a[i],b[i]}}' file1 file2
    • +1 para awk contestar. Ahora son 10k de usuario!
    • Genial respuesta. ¿Te importaría explicar cómo funciona? No entiendo por qué es a[NR] primero y luego a[FNR].
  3. 1

    Un puro solución puede ser:

    exec 3<twofile
    while read x; do read -u 3 y; echo $x $y; done <onefile

    Infiles:

    cat >onefile <<XXX
    1 1
    2 3
    3 4
    XXX
    cat >twofile <<XXX
    6
    7
    9
    XXX

    De salida:

    1 1 6
    2 3 7
    3 4 9

Dejar respuesta

Please enter your comment!
Please enter your name here