Implementação simples. Não tenho certeza se o awk é a melhor ferramenta.
awk -F '\t' '
BEGIN {
while(getline < "fileB.txt")
fileB[$1]=$0
}
{
matched=""
for (company in fileB)
{
if ( $2 ~ company )
{
matched=fileB[company]
break
}
}
if (matched)
print $0 "\t" matched
else
print
}' fileA.txt
Isto é para mostrar-lhe como começar, esse script pode ser melhorado. A correspondência é confiável somente se a entrada estiver limpa, caso contrário não funcionará. Cuidado com maiúsculas / minúsculas, palavras separadas por mais de um espaço, ... É possível que uma linha corresponda a mais de uma empresa, esse script não a detectará, nesse caso você teria que substituir a quebra por um contador e depois testar após o loop.