日期:2014-05-16 浏览次数:20745 次
#!/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