新手来这里吧!
我正在尝试编写一个 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,并且可以使用 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。任何建议将不胜感激。
翻过高山走不出你
慕码人2483693
函数式编程
相关分类