2013-09-12 2 views
1

Я хотел бы получить совпадение идентификаторов первого файла с идентификаторами второго файла, поэтому я получаю, например, Thijs Al,NED19800616,39. Я знаю, что это должно быть возможно с AWK, но я не очень хорош в этом.Awk слияние двух файлов по id

file1 (несколько записей)

NED19800616,Thijs Al 
BEL19951212,Nicolas Cleppe 
BEL19950419,Ben Boes 
FRA19900221,Arnaud Jouffroy 
... 

file2 (много записей)

38,FRA19920611 
39,NED19800616 
40,BEL19931210 
41,NED19751211 
... 
+1

является 'ID' уникальным в любом файле? – iruvar

+0

да это уникально – user720491

ответ

3

Не используйте awk, используйте join. Сначала убедитесь, что входные файлы сортируются:

sort -t, -k1,1 file1 > file1.sorted 
sort -t, -k2,2 file2 > file2.sorted 
join -t, -1 1 -2 2 file[12].sorted 
3

С AWK вы можете сделать

$ awk -F, 'NR==FNR{a[$2]=$1;next}{print $2, $1, a[$1] }' OFS=, file2 file1 
Thijs Al,NED19800616,39 
Nicolas Cleppe,BEL19951212, 
Ben Boes,BEL19950419, 
Arnaud Jouffroy,FRA19900221, 
+1

+1, Этот однострочный awk достаточно хорош. – anubhava

Смежные вопросы