abh
abh

Reputation: 101

Join on first column of two files

How can I join two files by the first column of each?

file1:

116
116
116
116
116
117
117
117
117
117

file2:

1   37.8378378378378
2   30.5009605438156
3   35.4106079490375
4   25.6565656565657
.....
.....
116 49.4073275862069
117 25.8182578688696
118 36.1389759665622
119 36.7218282111899
120 55.1587301587302

I want to match the 1st columns in both files and print like this:

116  49.4073275862069
116  49.4073275862069  
116  49.4073275862069 
116  49.4073275862069 
116  49.4073275862069 
117  25.8182578688696
117  25.8182578688696
117  25.8182578688696
117  25.8182578688696
117  25.8182578688696

Upvotes: 0

Views: 3379

Answers (2)

Chris Seymour
Chris Seymour

Reputation: 85775

You can do this simply with join

join <(sort file1) <(sort file2)

Upvotes: 3

Kent
Kent

Reputation: 195039

try this one-liner:

awk 'NR==FNR{a[$1]=$2;next}$1 in a{print $1,a[$1]}' file2 file1

Upvotes: 2

Related Questions