It sounds like this might be what you’re looking for:
$ cat tst.awk
BEGIN { FS=OFS="\t" }
NR==FNR {
map[$1] = $2
map[$2] = $2
next
}
FNR==1 {
print
FS=" "
next
}
{
orig = $0
country = ""
gsub(/[^[:alpha:]]/," ")
for (i=NF; i>0; i--) {
if ($i in map) {
country = map[$i]
break
}
}
print orig, country
}
$ awk -f tst.awk file1 file2
Firstname Country
Fred, Havana Cuba
James, (Varadero, Cuba) Cuba
Jack (Cuba) Cuba
Harry Varadero, Cuba Cuba
Josh Cuba Cuba
Gary, Mavinga & Other, Angola Angola
Jamie, (Angola) Angola
10
solved How to use AWK to solve this 2 Table Data Join?