从文件中删除一行(包含特定子字符串)的最佳方法是什么?我试图将整个文件加载到一个切片中,修改该切片,然后将该切片打印到一个文件中,效果很好,但是当我想对大文件(例如 50GB+)执行此操作时,这是行不通的,因为我没有没有那么多记忆。我认为这对于流是可能的,但我没有弄清楚如何同时读取和写入(因为我必须通过子字符串搜索该行然后将其删除)。这甚至可能吗,还是我必须阅读整个文件并保护索引?如果是这样,最好的方法是什么?
1 回答
慕勒3428872
TA贡献1848条经验 获得超6个赞
这从标准输入读取并写入标准输出。请注意,我从第二个答案中的代码在go 中逐行读取文件时对其进行了改编(未测试)。
scanner := bufio.NewScanner(os.Stdin)
for scanner.Scan() {
line := scanner.Text()
if line != "unwanted" {
fmt.Println(line)
}
}
if err := scanner.Err(); err != nil {
log.Fatal(err)
}
- 1 回答
- 0 关注
- 154 浏览
添加回答
举报
0/150
提交
取消