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

エスケープを防ぐには、コマンドをdouleqoutesで囲みます。

$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 に答える