Com apenas o awk
comando:
awk -F, '{getline f1 <"file2" ;print f1,$3,$4}' OFS=, file1
Obtenha uma linha do arquivo1 e armazene-a na variável local f1
, depois imprima a linha armazenada f1
e, finalmente, imprima o terceiro ( $3
) e o dianteiro ( $3
) campos do arquivo1 que delimitou por vírgula por ,
completo e altere o OFS (separador do campo de saída [espaço por padrão]) para vírgula ( ,
).
O comando curto seria assim:
paste -d, file2 <(cut -d, -f3- file1)
A, B, C, D
A, B, C, D
A, B, C, D
A, B, C, D
cole o arquivo2, recorte e cole a terceira coluna na próxima ( -f3-
) do arquivo1.
Com awk
e paste
(opção A)
O comando abaixo também copia as duas últimas colunas ( C,D
) do arquivo1 no final de cada linha do arquivo2:
paste -d',' file2 <(awk -F',' '{print $(NF-1)","$NF}' file1)
Acima do comando, cole o conteúdo do arquivo2, imprima um delimitador de vírgula ( -d','
) e, em seguida, cole os dois últimos campos ( NF
é o índice do último campo e $NF
a cadeia de caracteres que é o seu índice NF
. Assim $(NF-1)
é o segundo campo antes do último campo) do arquivo1 quando esse índice redefine ou divide com vírgula espectador ( -F','
).
Com awk
e paste
(opção B)
Este comando também é o mesmo que acima ( $3
e $4
aponta para o terceiro e o quarto campos de cada linha do arquivo1):
paste -d',' file2 <(awk -F',' '{print $3","$4}' file1)
Ou outra solução com o cut
comando:
paste -d, <(cut -d, -f1 file1) <(cut -d, -f2 file2) <(cut -d, -f3- file1)
comando cut no comando acima, primeiro corte o primeiro campo ( -f1
indexado com delimitador de vírgula ( -d.
)) de file1 ( cut -d, -f1 file1
), depois corte e cole o segundo campo de file2 ( cut -d, -f2 file2
) e, finalmente, corte e cole a terceira coluna ( -f3
) nos nexts ( -
) do arquivo1 ( cut -d, -f3- file1
) novamente.
Este comando também retorna o mesmo resultado:
paste -d, <(awk -F',' '{print $1}' file1) <(awk -F',' '{print $2}' file2) <(awk -F',' '{print $3","$4}' file1)
cole o segundo campo de file1 ( awk -F',' '{print $1}' file1
), imprima uma vírgula ( -d,
), cole a segunda coluna de file2 ( awk -F',' '{print $2}' file2
) e, finalmente, cole a segunda e a última coluna de file1 ( awk -F',' '{print $3","$4}' file1
) novamente.