Sed
sed 's/\s.*$//'
Grep
grep -o '^\S*'
Awk
awk '{print $1}'
Jak wskazano w komentarzach, -o
nie jest POSIX; jednak zarówno GNU, jak i BSD go mają, więc powinno działać dla większości ludzi.
Ponadto, \s
/ \S
nie może być na wszystkich systemach, jeśli twój nie rozpoznaje go można użyć dosłownego przestrzeń, lub jeśli chcesz przestrzeń i kartę, a te w wyrażeniu wspornik ( [...]
) lub [[:blank:]]
klasę postaci (uwaga, że ściśle mówiąc \s
jest równoważne [[:space:]]
i zawiera znaki odstępów pionowych, a także CR, LF lub VT, o które prawdopodobnie nie dbasz).
Ten awk
zakłada, że linie nie zaczynają się od pustego znaku.
<
jest to przydatne tutaj?cut < file
vscut file
? Następnie zobacz unix.stackexchange.com/a/70759/22565lub
źródło
A jeden przez
perl
,Poprzez GNU grep
źródło