如何用新行替换文本文件中的行?
假设我已打开文件,并且我现在正在循环遍历字符串对象数组中的每一行
//find line with ']'
for i, line := range lines {
if strings.Contains(line, ']') {
//replace line with "LOL"
?
}
}
答案 0 :(得分:21)
这里重要的不是你在那个循环中做了什么。它不像你那样会直接编辑文件。
最简单的解决方案是,只需替换数组中的字符串,然后在完成后将数组的内容写回文件。
这是我在一两分钟内汇总的一些代码。它可以在我的机器上正确编译和运行。
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)
}
}
还有一个要点(使用相同的代码) https://gist.github.com/dallarosa/b58b0e3425761e0a7cf6