Usando sed / awk para eliminar cualquier cosa después del primer espacio

aaaaaaaa 09 bbbbbbbb 90 ccccccccccccccc 89 ddddd 09 

Usando sed / awk / replace, en el text anterior quiero eliminar todo lo que venga después del primer espacio en cada línea. Por ejemplo, el resultado será:

 aaaaaaaa bbbbbbbb ccccccccccccccc ddddd 

cualquier ayuda será apreciada

Sed

 sed 's/\s.*$//' 

Grep

 grep -o '^\S*' 

Awk

 awk '{print $1}' 

Como se señala en los comentarios, -o no 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 / \S puede 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 class de caracteres [[:blank:]] (tenga en count que estrictamente hablando es equivalente a [[:space:]] e incluye caracteres [[:space:]] verticales, así como CR, LF o VT, que probablemente no le interesen).

El awk supone que las líneas no comienzan con un personaje en blanco.

 cut -d ' ' -f 1 < your-file 

sería el más eficiente

 awk '{print $1}' file 

o

 sed 's/ .*//' 

Y el de perl ,

 $ perl -pe 's/^([^ ]+) .*$/\1/' file aaaaaaaa bbbbbbbb ccccccccccccccc ddddd 

A través de GNU grep,

 $ grep -oP '^[^ ]*' file bbbbbbbb ccccccccccccccc ddddd