Sed
sed 's/\s.*$//'
Grep
grep -o '^\S*'
Awk
awk '{print $1}'
Как указано в комментариях, -o
это не POSIX; однако как в GNU, так и в BSD он есть, поэтому он должен работать для большинства людей.
Кроме того, \s
/ \S
может быть не во всех системах, если ваша не распознает его, вы можете использовать буквальный пробел, или если вы хотите пробел и табуляцию, те, которые в выражении в скобках ( [...]
), или [[:blank:]]
класс символов (обратите внимание, что строго говоря \s
это эквивалентно [[:space:]]
и включает в себя вертикальные символы, такие как CR, LF или VT, которые вам, вероятно, не нужны).
awk
Один предполагает , что линии не начинаются с пробелом.
<
это полезно здесь?cut < file
противcut file
? Тогда см. Unix.stackexchange.com/a/70759/22565или
источник
И один через
perl
,Через GNU grep,
источник