Відповіді:
Сед
sed 's/\s.*$//'
Греп
grep -o '^\S*'
Awk
awk '{print $1}'
Як зазначено в коментарях, -o
це не POSIX; однак і GNU, і BSD мають його, тому він повинен працювати для більшості людей.
Також \s
/ \S
може бути не у всіх системах, якщо ваша не розпізнає це, ви можете використовувати буквальний пробіл, або якщо ви хочете пробіл та вкладку, ті, які містяться в дужці виразом ( [...]
), або [[:blank:]]
клас символів (зауважте, що строго кажучи \s
це еквівалентний [[:space:]]
і включає символи вертикального проміжку, а також CR, LF або VT, які вам, мабуть, не цікаві).
awk
Один передбачає , що лінії не починаються з пропуском.
cut -d ' ' -f 1 < your-file
було б найбільш ефективним.
cut < file
проти cut file
? Потім дивіться unix.stackexchange.com/a/70759/22565
І той, що проходить perl
,
$ perl -pe 's/^([^ ]+) .*$/\1/' file
aaaaaaaa
bbbbbbbb
ccccccccccccccc
ddddd
Через GNU grep,
$ grep -oP '^[^ ]*' file
bbbbbbbb
ccccccccccccccc
ddddd
<
корисне тут?