bash: leia as palavras separadas por pipe em uma matriz
IFS='|' read -ra words < <(head -n 1 file)
printf "Hello %s!\n" "${words[@]}"
awk: iterar as palavras na linha.
awk -F'|' 'NR == 1 { for (i=1; i<=NF; i++) print "Hello " $i "!"; exit}' file
e um sed:
sed -e 2Q -e 's/\([^|]\+\)/Hello !/g' -e 's/[|]/\n/g' file