awk 想要熟练掌握还需要多练习,简单的处理了两个小问题,以后再次补充。

格式化 nginx 日志输出

BEGIN {
    FIELDWIDTHS = 100
    printf "%-5s %30-s %18-s %3-s %30-s %30-s \n", "行号", "服务器域名", "服务器 IP", "请求接口", "请求状态", "执行时长" 
}

{
    if (NR < 5) {
        len = split($9, strs, "?")
        printf "%-5s %20-s %18-s %3-s %30-s %30-s \n", NR, $1, $3, $8, strs[1], $11 
    } else {
        exit
    }
}

END {

}
行号  服务器域名                服务器 IP       请求接口 请求状态                   执行时长                   
1     hmsspa.huimin100.cn  118.190.112.72     "GET /                              "51"
2     hmsspa.huimin100.cn  118.190.140.208    "GET /cart/set                      "148"
3     hmsspa.huimin100.cn  118.190.140.208    "GET /shopcar/cates                 "49"
4     hmsspa.huimin100.cn  118.190.118.56     "GET /shopcar/list                  "1766"  

去重

BEGIN{
}
{
    ++ids[$1];
}
END{
    for ( key in ids ) {
            print(key) > "/tmp/test/uniq.txt"
    }
}

更多学习 awk 的链接:
https://www.twle.cn/c/yufei/a...
https://book.saubcy.com/AwkIn...
https://www.junmajinlong.com/...


哈基石
88 声望3 粉丝

« 上一篇
awk 手册
下一篇 »
http 状态码

引用和评论

0 条评论