Con solo awk
comando:
awk -F, '{getline f1 <"file2" ;print f1,$3,$4}' OFS=, file1
Obtenga una línea del archivo1 y almacénela en una variable local f1
, luego imprima la línea que se almacenó f1
y finalmente imprima los campos tercer ( $3
) y adelante ( $3
) del archivo1 que se delimitaron con una coma por ,
completo, y cambie el OFS (separador de campo de salida [espacio por predeterminado]) a coma ( ,
).
El comando corto sería así:
paste -d, file2 <(cut -d, -f3- file1)
A B C D
A B C D
A B C D
A B C D
pegue el archivo2, luego corte y pegue la tercera columna a la siguiente ( -f3-
) del archivo1.
Con awk
y paste
(opción A)
El siguiente comando también copia las dos últimas columnas ( C,D
) del archivo1 al final de cada línea en el archivo2:
paste -d',' file2 <(awk -F',' '{print $(NF-1)","$NF}' file1)
El comando anterior pega el contenido del archivo2, luego imprime un delimitador de coma ( -d','
) y luego pega los dos últimos campos ( NF
es el índice del último campo y $NF
es la cadena que es su índice NF
. Así $(NF-1)
es el segundo campo antes del último campo) del archivo1 cuando ese índice redefine o se divide con el espectador de coma ( -F','
).
Con awk
y paste
(opción B)
Este comando también es el mismo que el anterior ( $3
y $4
apunta al tercer y cuarto campo de cada línea del archivo1):
paste -d',' file2 <(awk -F',' '{print $3","$4}' file1)
O otra solución con cut
comando:
paste -d, <(cut -d, -f1 file1) <(cut -d, -f2 file2) <(cut -d, -f3- file1)
el comando cortar en el comando anterior primero corta el primer campo ( -f1
que está indexado con el delimitador de coma ( -d.
)) del archivo1 ( cut -d, -f1 file1
), luego corta y pega el segundo campo del archivo2 ( cut -d, -f2 file2
) y finalmente corta y pega la tercera columna ( -f3
) a los siguientes ( -
) del archivo1 ( cut -d, -f3- file1
) nuevamente.
Este comando también devuelve el mismo resultado:
paste -d, <(awk -F',' '{print $1}' file1) <(awk -F',' '{print $2}' file2) <(awk -F',' '{print $3","$4}' file1)
pegue el segundo campo del archivo1 ( awk -F',' '{print $1}' file1
) luego imprima una coma ( -d,
), luego pegue la segunda columna del archivo2 ( awk -F',' '{print $2}' file2
), finalmente pegue la segunda y última columna del archivo1 ( awk -F',' '{print $3","$4}' file1
) nuevamente.