awk中实现trim() snmpd.conf配置指南: SNMP的community和oid的权限关系
Sep 12
作者: 肖建彬 | 可以转载, 转载时务必以超链接形式标明文章原始出处和作者信息及版权声明
网址:http://www.xiaojb.com/archives/mailtech/vpopmail-userinfo.shtml

vpopmail的vuserinfo输出的用户信息较乱,我写了一个awk脚本将其处理。
用法:

./vuserinfo -D xxxx.com | ./user.awk

输出:
User Name Quota Usage
xxxx xxxxx NOQUOTA NOQUOTA

下载: userinfo.awk
#!/usr/bin/awk -f
function trim(str) { sub(/^[ \t]*/,"",str); sub(/[ \t]*$/,"",str); return str }

BEGIN {
        FS=":"
        U=""
        A=""
        N = ""
        Q = ""
        printf("%20s %10s %20s %10s\n", "User", "Name", "Quota", "Usage");
}
{
        if($1 == "name") {
                if(U != "") {
                        printf("%20s %10s %20s %10s\n", U, N, Q, A);
                }
                U = trim($2)
                A = ""
                N = ""
                Q = ""
        }
        if($1 == "usage") {
                A = trim($2)
        }
        if($1 == "gecos") {
                N = trim($2)
        }
        if($1 == "quota") {
                Q = trim($2)
        }
}
END {
        if(U) {
                printf("%20s %10s %20s %10s\n", U, N, Q, A);
        }
}

Leave a Reply