0

我有这样的数据,

field1,field2
test,11
test,3
test,14
test,200
test,8

我想总结所有field2。我使用 shell_exec。

$execute = 'x=0;for i in `cut -d\',\' -f2 /app/tibs/tosweb/CCS1/tos/temp/test2.txt`; do let x+=i; echo $x; done';
$output = shell_exec($execute);
echo "<pre>".var_export($output, TRUE)."</pre>\\n";

我不明白,为什么 x 的值总是返回 0?请帮助我的朋友,谢谢你。

*对不起我的英语不好:P

4

1 回答 1

0

cut不接受多字符分隔符(由于转义,它会将您的转义分隔符视为多字符)。所以你可以使用未转义的:

x=0;for i in `cut -d"," -f2 data.txt `; do let x+=i; echo $x; done

或者awk相反

x=0;for i in `awk -F\',\' '{ print $1 }'  data.txt `; do let x+=i; echo $x; done

为了防止转义,请使用 doule qoutes 将命令括起来:

$execute = "x=0;for i in `cut -d',' -f2 /app/tibs/tosweb/CCS1/tos/temp/test2.txt`; do let x+=i; echo $x; done";
于 2013-01-21T12:56:29.790 回答