-1

有一个压缩文本文件(.gz)有一些警告、错误和信息细节。

示例内容。

Oct 25 06:58:51 : For info, please visit https://www.det.org
Oct 25 06:58:51 : Copyright 2004-2018 Internet Systems Consortium.
Oct 25 06:58:51 : All rights reserved.
Oct 25 06:58:51 : ERROR: Host declarations are global.
Oct 25 06:58:51 : WARNING: Host declarations are global

我需要从文本文件中获取警告和错误完整行,而无需使用 golang 解压缩。如何为此开发算法?

4

1 回答 1

1

这是我解决上述问题的答案。

cmd := exec.Command(`zgrep`, `WARNING\|ERROR`, filename)
stdout, err := cmd.StdoutPipe()

if err != nil {
    log.Fatal(err)
}

if err := cmd.Start(); err != nil {
    log.Fatal(err)
}

data, err := ioutil.ReadAll(stdout)

if err != nil {
    log.Fatal(err)
}

if err := cmd.Wait(); err != nil {
    
        log.Fatalf("cmd.Wait: %v", err)
    
}
lines := strings.Split(string(data), "\n")
for _, line := range lines {
    fmt.Println(line)
    
}
于 2022-01-20T18:21:04.843 回答