Respuestas:
Sed
sed 's/\s.*$//'
Grep
grep -o '^\S*'
Awk
awk '{print $1}'
Como se señaló 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 [[:blank:]]
clase de caracteres (tenga en cuenta que estrictamente hablando \s
es 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í?