Re: [問題] 如何刪除一個檔案中的特定文字

看板C_and_CPP作者時間7年前 (2016/12/25 02:13), 編輯推噓3(307)
留言10則, 6人參與, 最新討論串2/2 (看更多)
※ 引述《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://www.ptt.cc/bbs/C_and_CPP/M.1482603236.A.888.html

12/25 02:49, , 1F
另外輸出一個檔案,邊讀原始檔案邊處理輸出到新檔
12/25 02:49, 1F

12/25 02:49, , 2F
然後rename?
12/25 02:49, 2F

12/25 03:04, , 3F
1樓正解
12/25 03:04, 3F

12/25 10:42, , 4F
好的~感謝! 所以沒有辦法不儲存新檔案的方式...
12/25 10:42, 4F

12/25 11:05, , 5F
sed 's/Good //' in.txt > out.txt bash偷懶方式XD
12/25 11:05, 5F

12/25 13:26, , 6F
用命令列工具算作弊吧 XD 直接用別人寫好的 code
12/25 13:26, 6F

12/26 01:00, , 7F
可以直接寫回去吧 因為檔案只會變短不會變長
12/26 01:00, 7F

12/26 01:01, , 8F
開rw模式 用seek移動
12/26 01:01, 8F

12/26 01:01, , 9F
但是開新檔比較簡單
12/26 01:01, 9F

12/26 01:02, , 10F
不然就打開vim......
12/26 01:02, 10F
文章代碼(AID): #1ONhhaY8 (C_and_CPP)
文章代碼(AID): #1ONhhaY8 (C_and_CPP)