Antworten:
Sed
sed 's/\s.*$//'
Grep
grep -o '^\S*'
Awk
awk '{print $1}'
Wie in den Kommentaren erwähnt, -oist es nicht POSIX; GNU und BSD haben es jedoch, so dass es für die meisten Menschen funktionieren sollte.
Auch \s/ \Skann nicht auf allen Systemen sein, wenn Ihr es nicht erkennt man eine wörtliche Raum verwenden können, oder wenn Sie wollen Raum und Reiter, die in einem Ausdruck in eckigen Klammern ( [...]) oder die [[:blank:]]Zeichenklasse (beachten Sie, dass streng genommen \sist Entspricht [[:space:]]und enthält Zeichen mit vertikalem Abstand sowie CR, LF oder VT, die Sie wahrscheinlich nicht interessieren.
Die awk man davon ausgeht , die Linien nicht mit einem Leerzeichen beginnen.
cut -d ' ' -f 1 < your-file
wäre das effizienteste.
Und der eine durch perl,
$ perl -pe 's/^([^ ]+) .*$/\1/' file
aaaaaaaa
bbbbbbbb
ccccccccccccccc
ddddd
Durch GNU grep,
$ grep -oP '^[^ ]*' file
bbbbbbbb
ccccccccccccccc
ddddd
<hier nützlich ist?