kb
24.01.2012 17:30 c8541125
Первое слово строк без awk и регистрации
$ echo "123 456" | cut -d $' ' -f 1
123
или cut -d' ' -f 1. Или sed -e 's/ .*$//'
sed :-( вот еще на жуйке красиво a="123 456"; echo ${a/ */}
не знал про такой башизм
ага, интересно
можно ещё echo 123 456 | tr ' ' '\n' | head -n1
да, киллер-способ :)
киллер-способ — это echo 123 456 | python -c 'from sys import stdin; for x in stdin.readlines(): print x.split()[0]'
извини, лучше так echo 123 456 | python -c 'for x in __import__("sys").stdin.readlines(): print x.split()[0]'
только я бы не делал readlines, а просто по stdin итерировал, потому что readlines неленивый
слова, к сожалению, табами тоже разделяются, но если только пробелами, тогде ещё есть способ, на сколько я знаю — не башизм: a="123 456"; echo ${a%% *}
там есть xreadlines
xreadlines — это шорткат к итератору.
ещё способ: a="123 456"; f() { echo $1; }; f $a;
и ещё способ: a="123 456"; f() { f|f; f; }; f
опечатка. a="123 456"; f() { f|f&f; }; f