Sed
sed 's/\s.*$//'
Grep
grep -o '^\S*'
Awk
awk '{print $1}'
Como apontado nos comentários, -o
não é POSIX; no entanto, tanto o GNU quanto o BSD o possuem, portanto ele deve funcionar para a maioria das pessoas.
Além disso, \s
/ \S
pode não estar em todos os sistemas. Se o seu não o reconhecer, você poderá usar um espaço literal, ou se desejar espaço e tabulação, aqueles em uma expressão entre colchetes ( [...]
) ou a [[:blank:]]
classe de caractere (observe que, estritamente falando, \s
é equivalente [[:space:]]
ae inclui caracteres de espaçamento vertical, bem como CR, LF ou VT, dos quais você provavelmente não se importa).
O awk
supõe-se as linhas não começar com um personagem em branco.
<
é útil aqui?cut < file
vscut file
? Então veja unix.stackexchange.com/a/70759/22565ou
fonte
E a única
perl
,Através do GNU grep,
fonte