Sed
sed 's/\s.*$//'
Grep
grep -o '^\S*'
Awk
awk '{print $1}'
Comme indiqué dans les commentaires, -o
n'est-ce pas POSIX; cependant GNU et BSD l'ont, donc cela devrait fonctionner pour la plupart des gens.
En outre, \s
/ \S
ne peut pas être sur tous les systèmes, si le vôtre ne reconnaît pas que vous pouvez utiliser un espace littéral, ou si vous voulez l' espace et onglet, ceux dans une expression de support ( [...]
), ou la [[:blank:]]
classe de caractères (notez que à proprement parler \s
est équivalent [[:space:]]
et inclut des caractères d'espacement vertical ainsi que CR, LF ou VT dont vous ne vous souciez probablement pas).
le awk
un suppose que les lignes ne commencent pas par un caractère vide.
<
utilité ici?cut < file
vscut file
? Voir ensuite unix.stackexchange.com/a/70759/22565ou
la source
Et l'un à travers
perl
,Grâce à GNU grep,
la source