kb 24.01.2012 17:30 c8541125

Первое слово строк без awk и регистрации
$ echo "123 456" | cut -d $' ' -f 1
123

1. werehuman 24.01.2012 17:31 Psi+

или cut -d' ' -f 1. Или sed -e 's/ .*$//'

2. kbwerehuman /1 24.01.2012 17:47 c8541125

sed :-( вот еще на жуйке красиво a="123 456"; echo ${a/ */}

3. werehumankb /2 24.01.2012 17:47 Psi+

не знал про такой башизм

4. kbwerehuman /3 24.01.2012 17:47 c8541125

ага, интересно

5. werehumankb /2 24.01.2012 17:48 Psi+

можно ещё echo 123 456 | tr ' ' '\n' | head -n1

6. kbwerehuman /5 24.01.2012 17:54 c8541125

да, киллер-способ :)

7. werehumankb /6 24.01.2012 17:55 Psi+

киллер-способ — это echo 123 456 | python -c 'from sys import stdin; for x in stdin.readlines(): print x.split()[0]'

8. werehumanwerehuman /7 24.01.2012 17:56 Psi+

извини, лучше так echo 123 456 | python -c 'for x in __import__("sys").stdin.readlines(): print x.split()[0]'

9. kbwerehuman /7 24.01.2012 17:56 c8541125

только я бы не делал readlines, а просто по stdin итерировал, потому что readlines неленивый

10. Sany 24.01.2012 17:56 Home

слова, к сожалению, табами тоже разделяются, но если только пробелами, тогде ещё есть способ, на сколько я знаю — не башизм: a="123 456"; echo ${a%% *}

11. werehumankb /9 24.01.2012 17:57 Psi+

там есть xreadlines

12. kbwerehuman /11 24.01.2012 17:57 c8541125

xreadlines — это шорткат к итератору.

13. Sany 24.01.2012 18:01 Home

ещё способ: a="123 456"; f() { echo $1; }; f $a;

14. werehumanSany /13 24.01.2012 18:02 Psi+

и ещё способ: a="123 456"; f() { f|f; f; }; f

15. werehumanwerehuman /14 24.01.2012 18:02 Psi+

опечатка. a="123 456"; f() { f|f&f; }; f

Do you really want to delete ?