Extrahieren Sie Daten aus zwei Dateien

Extrahieren Sie Daten aus zwei Dateien

Ich habe zwei Dateien, wie unten angegeben

Ausgabe1.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

Ausgabe2.csv

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

Ich muss diese beiden Dateien unter einer Bedingung zu einer einzigen Datei zusammenführen, d. h., das erste Feld beider Dateien muss gleich sein.

Zum Beispiel,

Wenn der erste Wert oder das erste Feld von Output1.csv -201319107648361ist gleich dem ersten Feld von Output2.csv, dann müssen die verbleibenden Felder der Datei in eine andere Datei gedruckt werden.

Die gewünschte Ausgabedatei sollte enthalten:

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

Antwort1

Alles was Sie brauchen istjoin

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

oderawk

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

verwandte Informationen