Re: [问题] 如何删除一个档案中的特定文字

楼主: blueguan   2016-12-25 02:13:53
※ 引述《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. 处理过程繁琐.
想请问各位资深的大大~有什么好想法..
感谢感谢~~~
作者: wtchen (没有存在感的人)   2016-12-25 02:49:00
另外输出一个档案,边读原始档案边处理输出到新档然后rename?
作者: wawi2 (@@)   2016-12-25 03:04:00
1楼正解
楼主: blueguan   2016-12-25 10:42:00
好的~感谢! 所以没有办法不储存新档案的方式...
作者: vanillastarp (小皮)   2016-12-25 11:05:00
sed 's/Good //' in.txt > out.txt bash偷懒方式XD
作者: Neisseria (Neisseria)   2016-12-25 13:26:00
用命令列工具算作弊吧 XD 直接用别人写好的 code
作者: longlongint (华哥尔)   2016-12-26 01:00:00
可以直接写回去吧 因为档案只会变短不会变长开rw模式 用seek移动但是开新档比较简单不然就打开vim......

Links booklink

Contact Us: admin [ a t ] ucptt.com