Как заменить текст в файле на Golang?

Пользователь

от paxton.conn , в категории: Вопросы от знатоков , 2 года назад

Как заменить текст в файле на Golang?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp Pocket

1 ответ

Пользователь

от kaci , 2 года назад

@paxton.conn Вы можете использовать код ниже как пример замены текста в файле на 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() {
   stringNeeded := "Строка которую заменить"
   stringToReplace := "На что заменить"
   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() == stringNeeded {
         text = stringToReplace
      }

      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)
   }
}