- 论坛徽章:
- 0
|
ac=888801010000016
name=现金
itm=9011
ind=
amt=-5,684,663.93
dacc=0.00
cacc=0.00
&L
ac=888801010000024
name=往帐
itm=5022
ind=红字
amt=2,000,000.00
dacc=0.00
cacc=0.00
&L
ac=888801010000032
name=来帐
itm=6033
ind=
amt=2,000,000.00
dacc=0.00
cacc=0.00
&L
&
对上述文本查找ac=888801010000032下amt;查找ac=888801010000024下amt值(红字),若为红字对应amt反号,没有则为amt本身,两个amt值相加,打印结果,可用如下代码实现:
#!/bin/sh
a=`sed -n '/ac=888801010000032/'= filename`
b=`sed -n '/ac=888801010000024/'= filename`
amtline32=`expr $a + 4`
amtline24=`expr $b + 4`
amt32=`sed -n "${amtline32}p" filename|sed s'/^amt=//'|sed s'/,//'g`
amt24=`sed -n "${amtline24}p" filename|sed s'/^amt=//'|sed s'/,//'g`
total_amt=`echo "${amt32} + ${amt24}"|bc`
if [ $total_amt -eq 0 ]
then
echo "ok"
else
echo "error"
fi
但红字反号问题没有解决,问如何解决之. |
|