Sed
sed 's/\s.*$//'
Grep
grep -o '^\S*'
Awk
awk '{print $1}'
Wie in den Kommentaren erwähnt, -o
ist es nicht POSIX; GNU und BSD haben es jedoch, so dass es für die meisten Menschen funktionieren sollte.
Auch \s
/ \S
kann 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 \s
ist 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.
<
hier nützlich ist?cut < file
vscut file
? Dann siehe unix.stackexchange.com/a/70759/22565oder
quelle
Und der eine durch
perl
,Durch GNU grep,
quelle