Respuestas:
Sed
sed 's/\s.*$//'
Grep
grep -o '^\S*'
Awk
awk '{print $1}'
Como se señaló en los comentarios, -ono es POSIX; sin embargo, tanto GNU como BSD lo tienen, por lo que debería funcionar para la mayoría de las personas.
Además, \s/ \Spuede no estar en todos los sistemas, si el suyo no lo reconoce, puede usar un espacio literal, o si desea espacio y tabulación, aquellos en una expresión de paréntesis ( [...]) o la [[:blank:]]clase de caracteres (tenga en cuenta que estrictamente hablando \ses equivalente a[[:space:]] e incluye caracteres de espaciado vertical, así como CR, LF o VT que probablemente no le interesen).
El awk primero supone que las líneas no comienzan con un carácter en blanco.
cut -d ' ' -f 1 < your-file
Sería el más eficiente.
Y el que pasa perl,
$ perl -pe 's/^([^ ]+) .*$/\1/' file
aaaaaaaa
bbbbbbbb
ccccccccccccccc
ddddd
A través de GNU grep,
$ grep -oP '^[^ ]*' file
bbbbbbbb
ccccccccccccccc
ddddd
<es útil aquí?