POSIXly:
sed 's/[^[:alnum:]_-]//g'
removerá tudo, não são caracteres alfanuméricos em sua localidade atual, _
e -
.
$ echo 'foo-bar |' | sed -e 's/[^[:alnum:]_-]//g'
foo-bar
Mas se você quiser imprimir tudo até o primeiro espaço:
sed -e 's/^\([^ ]*\) .*//'
ou awk
:
awk '{print $1}'