求高手帮忙写下脚本!谢谢!

求高手帮忙写下脚本!谢谢!

172.16.11.99: avial:29G
172.16.11.98: avial:63G
172.16.11.97: avial:1.2T
172.16.11.99: avial:1.5T
...........
如上面,有很长的一列,我现在想要对avial:后面的数字求和,都转化成以T为单位的,急用,麻烦高手帮忙写一脚本,谢谢!


[Copy to clipboard] [ - ]
CODE:
perl -ne '($v, $u) = $_=~/:(\d+\.?\d*)(G|T)$/; $c+=$v/($u eq "G"?1024:1);}{printf "%.2fT\n", $c' srcfile

多谢楼上指点,很好用,谢谢!


QUOTE:
原帖由 ynchnluiti 于 2008-11-27 18:07 发表
perl -ne '($v, $u) = $_=~/\d+\.?\d*)(G|T)$/; $c+=$v/($u eq "G"?1024:1);}{printf "%.2fT\n", $c' srcfile

代码都这么简练 怎么练成滴
awk -F'[:GT]' '/G$/{$3=$3/1024}{sum+=$3}END{print sum}' urfile
正则用得好