登录
首页 >  Golang >  Go问答

从大文件中删除特定行的最快方法是什么?

来源:stackoverflow

时间:2024-04-14 16:39:29 360浏览 收藏

哈喽!今天心血来潮给大家带来了《从大文件中删除特定行的最快方法是什么?》,想必大家应该对Golang都不陌生吧,那么阅读本文就都不会很困难,以下内容主要涉及到,若是你正在学习Golang,千万别错过这篇文章~希望能帮助到你!

问题内容

从文件中删除行(包含特定子字符串)的最佳方法是什么?

我尝试将整个文件加载到一个切片中,修改该切片,然后将该切片打印到一个文件中,效果很好,但是当我想对大文件(例如 50GB+)执行此操作时,这将不起作用因为我没有那么多内存。

我认为这对于流来说是可能的,但我不知道如何同时读写(因为我必须通过子字符串搜索该行,然后将其删除)。 这是否可能,或者我是否必须读取整个文件并保护索引?如果是这样,最好的方法是什么?


解决方案


它从标准输入读取并写入标准输出。请注意,我根据第二个答案 reading file line by line in 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)
}

理论要掌握,实操不能落!以上关于《从大文件中删除特定行的最快方法是什么?》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>