awk中处理asc码

来源:互联网 发布:ubuntu如何创建文件夹 编辑:程序博客网 时间:2024/05/20 22:36

遇到问题:

server打日志时而没有将uint8的统计字段转换为int,而是直接打出来变成了asc码的值(比如1变成了^A),导致运营脚本无法正常统计,短期无法更新server,只能将日志二次加工


解决思路:

将日志文件中的asc码值转换为对应的正常数值


具体代码:proc.awk

#!/bin/awk -fBEGIN {    for (idx = 0; idx < 256; ++idx) {        ch = sprintf("%c", idx);        ascii[ch] = idx;    }}{    if($NF >= "^A" && $NF <= "^Z")    {        sum="";        for(idx = 1; idx < NF; idx++)        {            sum=sum" "$idx;        }        print sum" "ascii[$NF];    }}


参考文献:

http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=1244057&page=2

0 0