shell练习--awk

  • 输出第7列包含bin的行第1和最后一个一列,并统计行数
# 运行命令:awk -f user_info.awk passwd 

BEGIN{
    FS=":"
    printf "%-20s%-20s\n", "username", "shell"
}
{
    if ($7 ~ "bin"){
        count++
        printf "%-20s%-20s\n", $1, $NF
    }
}
END{
    printf "%-20s%-20d\n", "Total", count
}
  • 获取每个用户执行的用例数

BEGIN{
    printf "%-20s%-20s\n", "Tester", "TotalTestCase"
}
{
    USERS[$4] += 1
}
END{
    for (u in USERS)
        printf "%-20s%-20s\n", u, USERS[u]
}
  • 获取每个用户执行的成功和失败用例数
BEGIN{
    printf "%-20s%-20s%-20s\n", "Tester", "TotalPass", "TotalFail"
}
{   
    if ($5 == "PASS"){
        SUCCESS[$4] += 1
    }else{
        FAIL[$4] += 1
    }
    USERS[$4] += 1
}
END{
    for (u in USERS)
        printf "%-20s%-20%-20d\n", u, SUCCESS[u], FAIL[u]
}
  • 获取每个用户执行的error, critical, pass, fail用例数
BEGIN{
    printf "%-20s%-20s%-20s%-20s%-20s\n", "Tester", "TotalError", "TotalCritical", "TotalPass", "TotalFail"
}
{   
    if ($5 == "PASS"){
        SUCCESS[$4] += 1
    }else{
        FAIL[$4] += 1
    }
    if ($3 == "ERROR"){
        ERROR[$4] += 1
    }
    if ($3 == "CRITICAL"){
        CRITICAL[$4] += 1
    }
    USERS[$4] += 1
}
END{
    for (u in USERS)
        ALL_ERROR += ERROR[u]
        ALL_CRITICAL += CRITICAL[u]
        ALL_SUCCESS += SUCCESS[u]
        ALL_FAIL += FAIL[u]
        printf "%-20s%-20d%-20d%-20d%-20d\n", u, ERROR[u], CRITICAL[u], SUCCESS[u], FAIL[u]
    printf "%-20s%-20d%-20d%-20d%-20d\n", "Total", ALL_ERROR, ALL_CRITICAL, ALL_SUCCESS, ALL_FAIL
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值