ruby 代码
- #!/usr/local/bin/ruby
- require 'mathn'
- files = Dir.glob("udpsink*.txt")
- interval=ARGV[0]
- if ARGV.size <=1
- interval = 49
- end
- files.each do |f|
- dl = []
- ps=[]
- udpindex = f.match(/(\d+)/)[1].to_i
- File.open(f, 'r').each do |line|
- ll=line.split
- dl << ll[3].to_f
- ps << ll[4].to_i
- end
- sum = 0
- ps.each {|p| sum += p}
- delay=0
- dl.each {|d| delay += d}
- printf "UDP #%d Throughput: %0.2f Kbps Average delay: %0.2f Sec\n", udpindex, sum*8/1024/interval.to_f, delay/dl.size
- end
注意几个地方
1) Dir.glob方法返回一个array
2) File.open(f, 'r').each 可以调用block
3) string.match(regex)[1] 返回匹配组