Ich habe 2 große Dateien.Finden Sie passende IDs in zwei großen Dateien
file1 hat 160 Millionen Zeilen mit diesem Format: id:email
file2 verfügt über 45 Millionen Zeilen mit diesem Format: id:hash
Das Problem ist, alle gleich id s zu finden und mit Ausnahme derjenigen, zu einer dritten Datei, mit dem Format: email:hash
Versucht etwas wie:
awk -F':' 'NR==FNR{a[$1]=$2;next} {print a[$1]":"$2}' test1.in test2.in > res.in
Aber es ist nicht :(
Beispiel file1 arbeiten:
9305718:[email protected]
59287478:[email protected]
file2:
21367509:e90100b1b668142ad33e58c17a614696ec04474c
9305718:d63fff1d21e1a04c066824dd2f83f3aeaa0edf6e
Wunschergebnis:
[email protected]:d63fff1d21e1a04c066824dd2f83f3aeaa0edf6e
160m Datensätze werden wahrscheinlich nicht in den Speicher passen. Sind diese Dateien nach ID sortiert? Wenn dies der Fall ist, ist 'Join' ein besseres Werkzeug für diese Aufgabe. – karakfa
Ja, es ist sortiert. Aber nicht alle IDs sind in der zweiten Datei, ist das nicht ein Problem? –
Die Beispiel * file2 * -Daten sind _nicht_ sortiert. Sollte es sein? – agc