免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3244 | 回复: 15
打印 上一主题 下一主题

关于在文件中改写指定字符串的问题,谢谢大家,急! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-07-15 14:55 |只看该作者 |倒序浏览
大家好,
我想在一个文件中查找某个字符串,然后改写它:

例如: 在 aa.conf 中查找  timeout 60; 把 后面的60改为100 ,“timeout"
字符串在aa.conf中的位置时不定的,

aa.conf内容简写如下:

server name  aaa;
server ip  192.168.7.1;
...
timeout 60;
.....

请问我如何定位timeout,然后改写其后的值为100呢
fseek不好定位,fgets取出一部分后,在用strstr好像也不好使,fp的指针已经到了timeout的后面,
再说fgets每次取出多少合适呢,还是按行取出?
大家有什么好的方法

论坛徽章:
0
2 [报告]
发表于 2006-07-15 16:38 |只看该作者
完整地读出文件,然后改写回去,不能偷懒

论坛徽章:
0
3 [报告]
发表于 2006-07-15 17:09 |只看该作者
有那么复杂马

论坛徽章:
0
4 [报告]
发表于 2006-07-15 21:01 |只看该作者
一定需要完整的读出,然后写入??

论坛徽章:
0
5 [报告]
发表于 2006-07-16 13:10 |只看该作者
我开始也考虑了把文件整个读入,然后改写,不过有没有其它方法呢?谢谢

论坛徽章:
0
6 [报告]
发表于 2006-07-16 17:05 |只看该作者
我觉得按行取比较好

论坛徽章:
1
射手座
日期:2013-09-30 15:24:05
7 [报告]
发表于 2006-07-16 17:43 |只看该作者
写shell啊!

论坛徽章:
0
8 [报告]
发表于 2006-07-16 17:46 |只看该作者
开始怀念注册表了,这样看起来注册表也不是一无是处呢。

论坛徽章:
0
9 [报告]
发表于 2006-07-17 11:06 |只看该作者
试试 sed 's/ timeout 60/ timeout 100/'   aa.conf   >result

论坛徽章:
0
10 [报告]
发表于 2006-07-17 12:39 |只看该作者
FH兄的说法是正解, 另外, 如果可以把这个文件定义成一个一个struct的数据文件, 那么改写就比较容易。 找到之后fseek一下, 只写这个包含600的struct就可以了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP