про awk и shell

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Гость
проходил мимо

Re: про awk и shell

Непрочитанное сообщение Гость » 2010-05-23 18:21:58

http://www.grymoire.com/Unix/Sh.html#uh-6

а также Word Expansions в sh(1)

Код: Выделить всё

$ a="A B C"
$ ls $a
ls: A: No such file or directory
ls: B: No such file or directory
ls: C: No such file or directory
$ IFS=
$ ls $a
ls: A B C: No such file or directory

Код: Выделить всё

#! /bin/sh
IFS=
i=ABC
j="A B C"
awk 'BEGIN { print "'$i'", "'$j'" }'
awk -v i=$i -v j=$j 'BEGIN { print i, j }'

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Гость
проходил мимо

Re: про awk и shell

Непрочитанное сообщение Гость » 2010-05-23 18:27:21

в POSIX более подробно чем в sh(1) расписано, например о IFS
IFS
A string treated as a list of characters that is used for field splitting and to split lines into fields with the read command.

If IFS is not set, it shall behave as normal for an unset variable, except that field splitting by the shell and line splitting by the read command shall be performed as if the value of IFS is <space> <tab> <newline>; see Field Splitting .

Implementations may ignore the value of IFS in the environment, or the absence of IFS from the environment, at the time the shell is invoked, in which case the shell shall set IFS to <space> <tab> <newline> when it is invoked.