替换文本文件Golang中的一行

sou*_*cey 13 go

如何用新行替换文本文件中的行?

假设我打开了文件,并且我现在正在循环遍历字符串对象数组中的每一行

//find line with ']'
    for i, line := range lines {

        if strings.Contains(line, ']') {


            //replace line with "LOL"
            ?
        }
    }
Run Code Online (Sandbox Code Playgroud)

Dal*_*osa 22

这里重要的不是你在那个循环中做的事情.这不像你将直接编辑文件.

最简单的解决方案是只更换数组中的字符串,然后在完成后将数组的内容写回文件.

这是我在一两分钟内汇总的一些代码.它可以在我的机器上正确编译和运行.

package main

import (
        "io/ioutil"
        "log"
        "strings"
)

func main() {
        input, err := ioutil.ReadFile("myfile")
        if err != nil {
                log.Fatalln(err)
        }

        lines := strings.Split(string(input), "\n")

        for i, line := range lines {
                if strings.Contains(line, "]") {
                        lines[i] = "LOL"
                }
        }
        output := strings.Join(lines, "\n")
        err = ioutil.WriteFile("myfile", []byte(output), 0644)
        if err != nil {
                log.Fatalln(err)
        }
}
Run Code Online (Sandbox Code Playgroud)

还有一个要点(使用相同的代码) https://gist.github.com/dallarosa/b58b0e3425761e0a7cf6