Usando um grep que sabe sobre -o :
$ printf '%s\n' "$string" | grep -o '\<Icecream[^[:blank:]]*'
Icecream123
O padrão \<Icecream[^[:blank:]]* corresponde à string Icecream (onde o I é precedido por um caractere não pertencente à palavra, ou o início da linha) seguido por zero ou mais não-brancos (não espaços ou tabulações) .
Usando awk :
$ printf '%s\n' "$string" | awk -v RS=' ' '/^Icecream/'
Icecream123
O programa awk divide a sequência em registros separados por espaço e testa cada um deles. Ele imprimirá os que começarem com a string Icecream .
Usando mawk ou GNU awk , você também pode usar
printf '%s\n' "$string" | awk -v RS='[[:blank:]]' '/^Icecream/'
pois eles interpõem RS como uma expressão regular se contiver mais de um caractere.
Com sed , de maneira semelhante a grep :
$ printf '%s\n' "$string" | sed 's/.*\(\<Icecream[^[:blank:]]*\).*//'
Icecream123
Usando /bin/sh :
set -- Icecream123 AirplaneBCD CompanyTL1 ComputerYU1
for string; do
case $string in
Icecream*)
printf '%s\n' "$string"
break
esac
done
Perl (com uma pequena ajuda de tr ):
$ printf '%s\n' "$string" | tr ' ' '\n' | perl -ne '/Icecream\S*/ && print'
Icecream123
ou apenas
$ printf '%s\n' "$string" | perl -ne '/(Icecream\S*)/ && print $1, "\n"'
Icecream123