作者blueguan ()
看板C_and_CPP
标题Re: [问题] 如何删除一个档案中的特定文字
时间Sun Dec 25 02:13:53 2016
※ 引述《blueguan ()》之铭言:
: 开发平台(Platform): (Ex: Win10, Linux, ...)
: Linux
: 编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
: GCC
: 问题(Question):
: 请问我想要在一个文字档中山删特定一段,想请问各位这样要怎麽写会比较好.
: EX:
: This is a Good Book
: 我想要删掉Good这个字串.
: 档案内容会变成是
: This is a Book.
: 我目前想到最好的方法就是复制一个档案
: 找到特定字串就不复制.
: 但是想请问各位大大有甚麽比较好的方法.
: 感谢
先描述目前我想到的方式
1. 一开始跑, 全部拉到记忆体. 然後处理完. 也持续放在记忆体.
一直到整个流程都跑完後,再把记忆体後再扔回file
缺点:1. 记忆体要太多了.
2. 无法边跑边看file的变化.
3. 中途不小心被关掉. 档案会不sync.
2. 一开始跑, 全部拉到记忆体, 处理完. 不放在记忆体. 就扔回给file
缺点:1. 过程要一直开关file. I/O 过多.
2. 处理过程繁琐.
想请问各位资深的大大~有甚麽好想法..
感谢感谢~~~
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 223.136.38.174
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1482603236.A.888.html
1F:推 wtchen: 另外输出一个档案,边读原始档案边处理输出到新档 12/25 02:49
2F:→ wtchen: 然後rename? 12/25 02:49
3F:→ wawi2: 1楼正解 12/25 03:04
4F:→ blueguan: 好的~感谢! 所以没有办法不储存新档案的方式... 12/25 10:42
5F:推 vanillastarp: sed 's/Good //' in.txt > out.txt bash偷懒方式XD 12/25 11:05
6F:→ Neisseria: 用命令列工具算作弊吧 XD 直接用别人写好的 code 12/25 13:26
7F:推 longlongint: 可以直接写回去吧 因为档案只会变短不会变长 12/26 01:00
8F:→ longlongint: 开rw模式 用seek移动 12/26 01:01
9F:→ longlongint: 但是开新档比较简单 12/26 01:01
10F:→ longlongint: 不然就打开vim...... 12/26 01:02