Thank you very much for this suggestion GenoMax, which was most helpful. I put your suggested query in a simple loop:
for i in `cat old_genes.txt`; do echo "${i}"; echo -n "\n${i}++" >> ans.txt; esearch -db gene -query "${i} AND human [ORGN]" | efilter -status alive | efetch -format acc | grep "^1. .*$" >> ans.txt; done
sed "s/++1.\\ /\t/g" ans.txt | sed "s/++/\t/g" | awk 'NF' >> ans2.txt
This loop fails for some well known gene names. For example, it translates LDLR into TP53. But for strangely named "genes", eg AK094642, it seems to work well, finding modern replacements for roughly 70-80% of the old gene names.