Go言語では標準ライブラリだけで、gzipファイルを解凍することができます。
以下は./access.log.gzファイルを解凍し、./access.logに保存するサンプルコードです。
srcPath := "./access.log.gz"
dstPath := "./access.log"
src, err := os.Open(srcPath)
if err != nil {
panic(err)
}
defer src.Close()
gr, err := gzip.NewReader(src)
if err != nil {
panic(err)
}
defer gr.Close()
dst, err := os.Create(dstPath)
if err != nil {
panic(err)
}
defer dst.Close()
if _, err := io.Copy(dst, gr); err != nil {
panic(err)
}
環境情報
$ go version
go version go1.19 linux/amd64