【发布时间】:2021-10-23 19:11:03
【问题描述】:
我需要格式化go tool cover 的输出,这样我就可以将第一列除以/,这样我就只得到最后两个值,但将其余的输出保留为原始值。
原始输出如下所示:
$ go tool cover -func=coverage.out
github.com/company/utils/common.go:6: IsFoo 100.0%
github.com/company/utils/logger.go:118: maskFoo 100.0%
github.com/company/utils/logger.go:127: createFoo 100.0%
github.com/company/utils/logger.go:132: CreateFakeFoo 100.0%
github.com/company/utils/foo_validaiton.go:43: IsFoo 100.0%
github.com/company/utils/foo_validaiton.go:49: GreaterThanFoo 100.0%
github.com/company/utils/yaml.go:39: closeFOO 100.0%
total: (statements) 100.0%
我尝试使用 awk 拆分第一列并仅获取 utils/file.go 部分,但列未对齐。
$ go tool cover -func=coverage.out | awk '{split($1, a, "/"); print a[4]"/"a[5]"\t"$2"\t"$3}'
utils/common.go:6: IsFoo 100.0%
utils/logger.go:118: maskFoo 100.0%
utils/logger.go:127: createFoo 100.0%
utils/logger.go:132: CreateFakeFoo 100.0%
utils/foo_validaiton.go:43: IsFoo 100.0%
utils/foo_validaiton.go:49: GreaterThanFoo 100.0%
utils/yaml.go:39: closeFOO 100.0%
/ (statements) 100.0%
如何使用 awk 或其他 cli 工具归档以下输出?
utils/common.go:6: IsFoo 100.0%
utils/logger.go:118: maskFoo 100.0%
utils/logger.go:127: createFoo 100.0%
utils/logger.go:132: CreateFakeFoo 100.0%
utils/foo_validaiton.go:43: IsFoo 100.0%
utils/foo_validaiton.go:49: GreaterThanFoo 100.0%
utils/yaml.go:39: closeFOO 100.0%
total: (statements) 100.0%
【问题讨论】:
标签: awk