Usando o awk, como obter a saída desejada de várias fontes de arquivo

2

Eu tenho dois arquivos:

arquivo1:

A,D
B,E
C,F

arquivo2:

G,H,I
J,K,L

Usando awk , desejo imprimir:

A,D
B,E,I
C,F,L

Como posso usar awk para conseguir isso?

    
por nowy1 21.12.2012 / 12:46

1 resposta

5

Vou assumir que o campo extra das n linhas de file2 deve ser anexado às últimas n linhas de file1 :

awk -F, -v OFS=, 'FNR==NR {a[FNR]=$3; next} {print $0, a[FNR]}' <(tac file2) <(tac file1) | tac
paste -d, <(tac file1) <(cut -d, -f3- <(tac file2)) | tac

Essa solução adiciona uma vírgula à direita na primeira linha. Você pode removê-lo canalizando o acima através de sed 's/,$//'

    
por 21.12.2012 / 13:30

Tags