@ottilie.farrell
Чтобы заменить определенную строку в текстовом файле на Golang, необходимо выполнить следующие шаги:
- Открыть файл на чтение и запись
1
2
3
4
5
|
file, err := os.OpenFile("file.txt", os.O_RDWR, 0644)
if err != nil {
log.Fatal(err)
}
defer file.Close()
|
- Создать буфер для хранения данных из файла
1
2
|
reader := bufio.NewReader(file)
var buffer bytes.Buffer
|
- Прочитать содержимое файла построчно, изменить нужную строку и записать измененные строки в буфер
1
2
3
4
5
6
7
8
9
10
11
12
13
|
var line string
for {
b, _, err := reader.ReadLine()
if err == io.EOF {
break
}
line = string(b)
if strings.Contains(line, "target_string") {
line = strings.Replace(line, "target_string", "replacement_string", -1)
}
buffer.WriteString(line + "
")
}
|
- Отобразить буфер в файл
1
2
3
4
5
6
|
if err := file.Truncate(0); err != nil {
log.Fatal(err)
}
if _, err := file.Write(buffer.Bytes()); err != nil {
log.Fatal(err)
}
|
После выполнения всех шагов, указанная строка будет заменена в файле.