ZOL博客
登录  |   注册  |   帮助
我的主页 日志 好友 相册
论坛
视频装备圈子 网摘
ZOL博客 > *奇奇* 的主页 > 日志

一个 Shell 程序的性能优化


2006-11-08 10:18:05   浏览(141)
一个 Shell 程序的性能优化
来源:http://www.csai.cn 希赛网
 编写 Linux Shell 脚本程序不要仅限于完成基本的程序功能,认真的分析 Shell 脚本并找出优化的方法对个人能力的提高以及对脚本程序的质量改善都有重要的意义,希望读者能从本文中获得许多实用的 Shell 程序方法。
本文 Shell 程序运行环境:
  程序运行环境 Redhat Linux as3 
GNU bash, version 2.05b.0(1)-release (i386-redhat-linux-gnu) 
代码清单:shellcode.txt
    问题描述:有一个普通的通话话单文件(包括"计费号码","主叫号码","被叫号码","开始时间","结束时间","时长","费用"等其它字段),要求根据另外一个号段配置文件(由"号段下限"和"号段上限"两个字段组成)将此话单文件进行分拣过滤。 
  分拣规则:如果通话话单文件中的"计费号码"位于号段文件的某个号段内,则将此条记录计入结果文件 1、否则计入结果文件 2、通话话单文件样例:
9013320003|9013320003|9918128025|20060814163420|20060814163450|30|20|00|01|005
9926645208|9926645208|9918188065|20060814163415|20060814163545|90|30|00|01|005
9934877207|9934877207|9936972003|20060814163620|20060814163930|190|50|00|01|005
......
......

  号段配置文件样例:
9013305000,9013327999
9013767000,9013768999
9923670000,9923679999
9928998000,9928999999
9932310000,9932319999
9932333400,9932333599
9936034000,9936036999
9936084000,9936084999
9998537000,9998537999
9998620000,9998629999
9998690000,9998699999
 
  例如:
    对于通话话单文件的第一条记录中的"计费号码"为 9013320000,此号码正好属于号段配置文件的第一个号段 9013305000,9013327999中,即:条件 9013305000<= 9013320000 <=9013327999 成立,所以应该将通话话单文件的第一条记录计入结果文件 1 中;对于通话话单文件中的第二条记录的"计费号码"为 9926645208 它不属于号段文件中的任何一个段,所以应该将通话话单的第二条记录计入结果文件 2 中。
  对于这样一个简单的问题首先想到的解决方法为:
  解决方法1:
    写一个双重循环,外层循环为逐条读取"通话话单文件"并获取每条记录的第一个字段的值"计费号码",内层循环:根据外层循环获得的"计费号码"在"号段文件"中循环比较,判断此号码是否属于相应号段。
  程序代码如下(省略了文件存在性判断等语句):
有大量代码,转载不便,原文请点击:http://help.csai.cn/Linux/200611020852481124.htm
投稿:生活情感
谁顶了这篇日志>>  还有谁对该日志投票? 最近读者>>
0
好文,顶
0
烂文,踩
 
网友评论>>
发表评论:  
 
内 容:
插入表情 文采分大于5可以使用表情
   *Ctrl+Enter快速回复

针对ZOL博客您有任何使用问题和建议 您可以 联系博客管理员查看帮助
ZOL简介 | 用户注册 | 广告服务 | 人员招聘(月) | ZOL历程 | 互动营销中心 | 站点地图 | 联系方式 | 欢迎投稿 | RSS订阅 | 友情链接
Copyright ©1999 - 2008 ZOL. All rights reserved. 中关村在线 版权所有.