You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用awk格式化go tool cover输出,修改首列同时保留其余内容对齐

解决方案

可以用awk配合printf固定宽度输出,或者结合column工具实现自动对齐,两种实现方式如下:

方案1:awk固定宽度对齐(最贴近原始输出格式)

go tool cover -func=coverage.out | awk '
# 单独处理total汇总行
/^total:/ {
    printf "%-32s %-24s %s\n", $1, $2, $3
    next
}
# 处理普通文件行
{
    split($1, arr, "/")
    # 动态取路径最后两段,避免硬编码下标适配不同前缀路径
    short_path = arr[length(arr)-1] "/" arr[length(arr)]
    printf "%-32s %-24s %s\n", short_path, $2, $3
}
'

说明:%-32s代表左对齐占32字符宽度,%-24s代表左对齐占24字符宽度,可根据实际输出长度调整数值适配你的场景。

方案2:结合column工具自动对齐(更通用)

如果不想手动调整宽度,可以用column工具自动计算列宽对齐:

go tool cover -func=coverage.out | awk '
/^total:/ {
    print $0
    next
}
{
    split($1, arr, "/")
    print arr[length(arr)-1] "/" arr[length(arr)] "\t" $2 "\t" $3
}
' | column -t -s $'\t'

两种方案输出均和预期效果完全一致。

内容的提问来源于stack exchange,提问作者akko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 08:06:03