My files:
file1.txt
 =========
 key1
 key1
 key1
 key1   
 key2
 key2   
 key3
 key3
 key3
 key4
 key4   
 file2.txt
 =========
 key1   22
 key2   23
 key3   24
 Expected Output :
 ==================
 key1   22
 key1   22
 key1   22
 key1   22    
 key2   23
 key2   23   
 key3   24
 key3   24
 key3   24
All solutions that I found does not duplicate matches strings.
awk '{a[$1]=a[$1]" "$2} END{for(i in a)print i, a[i]}'
join -a 1
What needs to be modified in this approaches to result in a left outer join?

join file1.txt file2.txtworks for me.