日期:2014-05-16 浏览次数:21081 次
#!/bin/sh
rm -rf ./result.txt
while read line
do
i1=`echo $line | awk '{print $1} '`
i2=`echo $line | awk '{print $2} '`
i3=`echo $line | awk '{print $3} '`
i1_dec=`echo $(($i1))` # convert to decimal
i2_dec=`echo $(($i2))` # convert to decimal
sum=`expr $i1_dec + $i2_dec`
echo $sum
out_string=`printf "0x%x\t%s" $sum $i3`
echo $out_string >> result.txt
done < $1
------解决方案--------------------
如果你都是十六进制的数据,可以考虑用--non-decimal-data选项,代码如下:
cat a.txt | awk --non-decimal-data '{sum=($1 + $2); printf("0x%x %s\n", sum,$3)}' > newfile.txt