@ottilie.farrell Вы можете заменить определенную строку в текстовом файле на Golang используя код ниже. Алгортим довольно таки прост: читаем файл построчно, затем сравниваем и ищем нужную строку, генерируем нужный массив строк и записываем обратно в файл:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
package main import ( "bufio" "io/ioutil" "log" "os" "strings" ) func main() { search := "Нужная строка" replace := "замена" filePath := "/tmp/test.txt" file, err := os.Open(filePath) if err != nil { log.Fatal(err) } defer file.Close() scanner := bufio.NewScanner(file) var lines []string for scanner.Scan() { text := scanner.Text() if scanner.Text() == search { text = replace } lines = append(lines, text) } if err := scanner.Err(); err != nil { log.Fatal(err) } err = ioutil.WriteFile(filePath, []byte(strings.Join(lines, "\n")), 0644) if err != nil { log.Fatalln(err) } } |