Perl
echo foo bar baz | perl -pe 's/.*[ \t]//'
Se você tiver que retirar primeiro os espaços iniciais, faça assim:
echo "foo bar baz " | perl -lpe 's/\s*$//;s/.*\s//'
O seguinte foi contribuído por mr.spuratic em um comentário:
echo "foo bar baz " | perl -lane 'print $F[-1]'
Bash
echo foo bar baz | while read i; do echo ${i##* }; done
ou é bash
não é seu shell padrão:
echo foo bar baz | bash -c 'while read i; do echo ${i##* }; done'
Se você tiver que remover um único espaço à direita primeiro, faça
echo "foo bar baz " | while read i; do i="${i% }"; echo ${i##* }; done
tr e cauda
echo foo bar baz | tr ' ' '\n' | tail -n1
embora isso só funcione para uma única linha de entrada, em contraste com as soluções acima. Suprimindo espaços à direita nessa abordagem:
echo "foo bar baz " | tr ' ' '\n' | grep . | tail -n1