使用awk进行四则运算

file:
134.123.345.2
3.4.5.6
想得出整数:
134*4+123*3+345*2+2
3*4+4*3+5*2+6

作者: tomer   发布时间: 2011-06-12

本帖最后由 yinyuemi 于 2011-06-12 14:50 编辑

回复 tomer
  1. awk -F'.' '{x=NF;for(i=1;i<=NF;i++) a+=$i*x--;print a;a=0}' file
  2. 1597
  3. 40
复制代码

作者: yinyuemi   发布时间: 2011-06-12

  1. perl -F'\.' -lane 'print $F[0]*4+$F[1]*3+$F[2]*2+$F[3]*1' urfile
复制代码

作者: Shell_HAT   发布时间: 2011-06-12

  1. awk -F'.' '{a=NF;x=0}{for(i=1;i<=NF;i++){x+=$i*a;--a}print x}' file
  2. 1597
  3. 40
复制代码

作者: zooyo   发布时间: 2011-06-12

回复 yinyuemi


    a+=$i*x--  师父,你这句太精辟了,发挥得淋漓尽致。

作者: zooyo   发布时间: 2011-06-12

回复 zooyo


   
or:


  1. awk -F'.' '{for(i=NF;i>=1;i--) a+=$(++x)*i;print a;a=x=0}'
复制代码

作者: yinyuemi   发布时间: 2011-06-12