Пробовал с нижеприведенным скриптом
for i in `cat o.txt`; do y=`echo $i |awk -F "|" '{print $NF}'| awk -F "@" '{print $NF}'`; echo $i | awk -v y="$y" '{print $0"|"y}'; done
выход
TEST|1234|john.doe@gmail.com|gmail.com
TEST|4533|jeffp12@yahoo.com|yahoo.com
TEST|9030|indoep13@gmx.com|gmx.com
TEST|0903|ramdpe23@gmail.com|gmail.com