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}'