Go новичок здесь!
Я пытаюсь собрать программу Go, которая будет анализировать файл журнала и возвращать конкретную информацию в соответствующих строках.
Чтобы привести пример того, что япытаясь достичь, я бы начал с файла журнала, который выглядит следующим образом:
2019-09-30T04:17:02 - REQUEST-A
2019-09-30T04:18:02 - REQUEST-C
2019-09-30T04:19:02 - REQUEST-B
2019-09-30T04:20:02 - REQUEST-A
2019-09-30T04:21:02 - REQUEST-A
2019-09-30T04:22:02 - REQUEST-B
Отсюда я хотел бы извлечь все «REQUEST-A» и либо распечатать время, когда запрос произошел в терминале, либофайл.
Я попытался использовать os.Open и сканер, и я могу использовать scanner.Text, чтобы записать, что он нашел вхождение моей строки, например так:
package main
import (
"bufio"
"fmt"
"os"
"strings"
)
func main() {
request := 0
f, err := os.Open("request.log")
if err != nil {
fmt.Print("There has been an error!: ", err)
}
defer f.Close()
scanner := bufio.NewScanner(f)
for scanner.Scan() {
if strings.Contains(scanner.Text(), "REQUEST-A") {
request = request + 1
}
if err := scanner.Err(); err != nil {
}
fmt.Println(request)
}
}
Но яЯ не уверен, как принять это, чтобы использовать его для получения информации, которую я ищу. Обычно я использовал бы Bash для этого, но я думал, что разветвлюсь и посмотрю, смогу ли я использовать Go. Любой совет будет оценен.