【发布时间】:2011-03-14 01:40:34
【问题描述】:
在https://issues.apache.org/jira/browse/GROOVY-1512,有一个补丁可用于执行类似于 awk 或 Perl 的 BEGIN 和 END 方法。这对于壳管道方案(例如对数字列表求和)可能很有用。
我使用当前版本的 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 命令输入的所有数字列表的总和?
【问题讨论】: