File 1:
a a b c d
File 2:
a a1 b b1 e e1 f f1
My desired output:
a a1 a a1 b b1
I am trying to implement this using bash or Python.
In python I tried:
f1=open("file1")
f2=open("file2")
dpo1=f1.readlines()
dpo2=f2.readlines()
for i in dpo2:
for j in dpo1:
if j in i:
print i
In bash I tried:
awk 'NR == FNR { ++h[tolower($1)]; next; } h[tolower($1)]' file1 file2
But this does not consider repetitions. It will give the output
a a1 b b1
Any ideas?
Advertisement
Answer
Here’s one way you could do it using awk:
$ awk 'NR==FNR{a[$1]=$2;next}$0 in a{print $0,a[$0]}' file2 file1
a a1
a a1
b b1
Read the key-value pairs from the second file into the array a, then print the ones that match.