Com apenas o comando awk
:
awk -F, '{getline f1 <"file2" ;print f1,,}' OFS=, file1
Pegue uma linha do arquivo1 e armazene-a na variável local f1
, imprima a linha que armazenou em f1
e finalmente imprima os terceiros ( ) e adiante (
) campos do arquivo1 que delimitaram com vírgula
,
por completo, e mude o OFS (separador de campos 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, depois recorte e cole a terceira coluna para a próxima ( -f3-
) do arquivo1.
Com awk
e paste
(opção A)
Abaixo, o comando também copia as duas últimas colunas ( C,D
) do arquivo1 no final de cada linha no arquivo2:
paste -d',' file2 <(awk -F',' '{print $(NF-1)","$NF}' file1)
Acima do comando cole o conteúdo do arquivo2 e imprima um delimitador por vírgula ( -d','
), em seguida, cole os dois últimos campos ( NF
é o índice do último campo e $NF
é a sequência cujo índice é NF
. Então $(NF-1)
é o segundo campo antes do último campo) do arquivo1 quando esses índice redefine ou divide com vírgula espectador ( -F','
).
Com awk
e paste
(opção B)
Este comando também é o mesmo que acima ( e
apontam para o terceiro e quarto campo de cada linha do arquivo1):
paste -d',' file2 <(awk -F',' '{print ","}' file1)
Ou outra solução com o comando cut
:
paste -d, <(cut -d, -f1 file1) <(cut -d, -f2 file2) <(cut -d, -f3- file1)
corte comando no comando acima primeiro corte o primeiro campo ( -f1
que foi indexado com delimitador por vírgula ( -d.
)) do arquivo1 ( cut -d, -f1 file1
), depois recorte e cole o segundo campo do arquivo2 ( cut -d, -f2 file2
) e finalmente recorte 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 }' file1) <(awk -F',' '{print }' file2) <(awk -F',' '{print ","}' file1)
cole o segundo campo do arquivo1 ( awk -F',' '{print }' file1
), imprima uma vírgula ( -d,
), cole a segunda coluna do arquivo2 ( awk -F',' '{print }' file2
), cole finalmente a segunda e a última coluna do arquivo1 ( awk -F',' '{print ","}' file1
) novamente.