Extrai dados de dois arquivos

4

Eu tenho dois arquivos conforme abaixo:

Output1.csv

201319107648361,12:27:04,12:27:14,0:0:10 secs
201319109089878,12:27:04,12:27:15,0:0:11 secs
201319108968961,12:27:15,12:27:54,0:0:9 secs
201319108686853,12:27:34,12:27:43,0:0:9 secs
.
.
.
n

Output2.csv

201319107648361,200
201319109089878,129
201319108968961,719
201319108686853,412
.
.
.
n

Eu preciso mesclar esses dois arquivos em um único arquivo com uma condição, ou seja, se o primeiro campo de ambos os arquivos for o mesmo.

Por exemplo,

Se o primeiro valor ou campo de Output1.csv - 201319107648361 for igual ao primeiro campo de Output2.csv, será necessário imprimir o campo restante dos arquivos em outro arquivo.

O arquivo de saída desejado deve conter:

201319107648361,12:27:04,12:27:14,0:0:10 secs,200
201319109089878,12:27:04,12:27:15,0:0:11 secs,129
201319108968961,12:27:15,12:27:54,0:0:9 secs,719
201319108686853,12:27:34,12:27:43,0:0:9 secs,412
.
.
.
n
    
por Ram 17.10.2013 / 14:27

1 resposta

6

Tudo o que você precisa é de join

join -t\, <(sort Output1.csv) <(sort Output2.csv)
-or-
join -t "," <(sort Output1.csv) <(sort Output2.csv)

ou awk

awk -F, 'FNR==NR{a[$1]=$2;next}{ print $0 "," a[$1]}' Output2.csv Output1.csv
    
por 17.10.2013 / 14:48