Chinaunix

标题: 请教字符回读问题 [打印本页]

作者: hanliu2008    时间: 2009-09-14 11:12
标题: 请教字符回读问题
各位大侠,请教问题如下:
如果一个文本文件有很多内容,全是英文字符,我想把其中所有的字符 i 换成A,其他字符不变,而且是在原文本中更换,不要新建一个文件,有什么好的办法吗?
谢谢
作者: hellioncu    时间: 2009-09-14 11:31
用二进制形式读写,或者用mmap
作者: langue    时间: 2009-09-14 14:08
1、建了再删,有何不可?

cat original | sed -e 's/i/A/g' > destination
rm -f original

2、直接打开那个文件,找到 'i',退后一字节,在 'i' 的位置写 'A' 不就是了?

直接修改文件没那么麻烦。
作者: hanliu2008    时间: 2009-09-14 14:20
在ANSI C下有什么好的办法吗? 二进制读写怎么操作啊?我弄了半天还是没搞定
作者: hanliu2008    时间: 2009-09-15 09:59
ok谢谢,法王版主
作者: bobozhang    时间: 2009-09-15 10:05
linux/unix上面没有所谓的二进制模式

打开该文件,read一大块数据比如4k到一个buffer,查找'i', 替换成'A', lseek到刚才读取的位置,把buffer写回去。循环




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2