- 论坛徽章:
- 0
|
本帖最后由 记忆的断层 于 2011-02-14 18:50 编辑
awk怎么优化从配置文件中读取数据
有个文件有300M左右(大概有30W条记录),每个字段之间是以“,”为分割域,一条记录有60个域,对其中的多个域根据多个配置文件中对应的配置项做修改,
ps: 需要修改的域和对应的配置文件有确定的对应关系
比如
curr_cd域对应curr_cd.cfg
以下的代码是对其中一个域的处理
现在代码中用的是以下处理方法(getline),每次都需要从文件的head开始读取配置,配置文件中的数据是有规则的-
- while( getline curr_data < "curr_cd.cfg" > 0 )
- {
- split(curr_data ,curr_cd_arr,",")
- if( curr_cd_arr[1] == curr_cd )
- {
- samt=sprintf("%s%s",array[1],substr(array[2],1,curr_cd_arr[2]))
- flag=1
- break
- }
- }
- close("curr_cd.cfg")
复制代码 效率实在接受不了,有没有好的办法处理,把配置文件的记录全部读到一个数组里(测试过,效率更低),然后从数组里面读取效率能高多少?
望高手指点下 |
|