В http://jira.codehaus.org/browse/GROOVY-1512, доступен патч для выполнения методов BEGIN и END, аналогичных awk или Perl. Это может быть полезно для сценариев трубопровода оболочки, таких как суммирование списка чисел.
Я пробовал различные синтаксисы, используя текущую версию Groovy, но она не выполняется. Может кто-нибудь сказать мне, что такое правильный синтаксис и привести пример для него?
Перефразировать вопрос подробно. Если у меня есть следующее,
my-desktop# du -s * | cut -f 1
4
1976
4
16
16
24
16
16
16
16
16
524
20
16
20
20
4
4
4
4
364
2356
4
5992
28
8
Я хочу что-то вроде следующего (вдохновленное awk), которое напечатало бы его сумму:
du -s * | cut -f 1 | groovy -a -n -e 'def sum; BEGIN{sum =0; }END {println sum;}sum=sum+split[0].toInteger()'
Если специальные замыкания или функции BEGIN и END еще не реализованы, то как мне вывести сумму всего списка чисел, переданных из других команд Unix?