第一个AWK程序的尝试

为了统计API的访问,需要读取8个G的数据,所以学习了下文本处理神器,AWK。简单实例如下:

# 以\t分割的文本

awk -F "\t" ‘
//获取小时的函数
function getHours(times){
    split (times, t, ":");
    return t[3];
}//awk 可分为三个部分: //中间部分 {} ,表示对每行的处理, //BEGIN 表示每行处理之前的预处理, //END 表示逐行处理之后的最终处理// 三个部门并不需要同时存在,但中间逐行处理肯定是需要的。
BEGIN{
    tilte_cnt = 0;
}
{// $1 表示,每行按照\t分割后,获取的第一个字串
    h = int(getHours($1));

    flag = 0;
// 中间可以有for循环,数组等。// 二维数组可以用 a[xx,xx]表示,实现是通过建立xx,xx的哈希实现的,并不是真正的二维数组
    for(i = 0; i < title_cnt; i ++){
        if (title[i] == $2){
            tmp[h,i] += 1;
            flag = 1;
            break;
        }
    }

    if (0 == flag){
        title[title_cnt] = $2;
        for (i = 0; i < 24; i++)
        {
            tmp[i,title_cnt] = 0;
        }
        tmp[h,title_cnt] = 1;
        ++title_cnt;
    }
}END{
    iter = 0;
// 有很多类C函数    printf("%s,", "api");
    for (i = 0; i < 24;i++){
        printf("%d,", i);
    }
    printf("\n");
    for (i = 0; i < title_cnt; i++){
        printf("%s,", title[i]);
        for (j = 0; j < 24; j++){
            printf("%d,", tmp[j,i]);
        }
        printf("\n");
    }
}
‘ api_log.res > api.analysis # 重定向到api.analysis 中
时间: 2024-11-10 14:06:28

第一个AWK程序的尝试的相关文章

【译】 AWK教程指南 6在AWK程序中使用Shell命令

awk程序中允许调用Shell指令,并提供管道解决awk与系统间数据传递的问题.所以awk很容易使用系统资源,读者可利用这个特点来编写某些适用的系统工具. 范例:写一个awk程序来打印出线上人数. 将下列程序建文件,命名为 count.awk BEGIN { while ( "who" | getline ) n++ print n } 并执行下列命令: $ awk -f count.awk 执行结果将会打印出目前在线人数. 说 明: 1. awk 程序并不一定要处理数据文件,以本例而

先做一个“小程序”——关于微信应用号的六大猜想

先做一个“小程序”——关于微信应用号的六大猜想 9月 21 日,苦等了9个多月的时间,应用号终于与我们见面了,命名为「小程序」. 01 为什么推出小程序? 考虑到小程序对整个APP市场的影响,毫无疑问会对现有的APP生态带来一定的冲击.但是,之所以推出小程序,最直接的原因可能是为了构建和扩充微信生态链,让微信更具开放性. 如我们所知,目前微信公众号分为三类: • 服务号,连接人和商品,目前很多电商企业,以及在微信端提供产品和服务的企业都用服务号. • 订阅号,微信官方的定位是阅读,连接人和资讯的

3. 第一个python程序

学习任何一门语言的第一步,首先要写个'hello world',这算是程序员的一个传统.但在写之前,还有注意几个问题. 首先,python是一门脚本语言,而脚本语言的特点就是:我们写的代码会先由解释器进行编译以后,再去执行.但是当我们的程序运行在操作系统之上时,系统并没有那么智能,能够自动识别出我们要用哪个解释器去解释我们的代码(windows则通过后缀名关联执行程序,所以不用声明也可以,但是我们的代码更多在linux上运行,所以解释器的声明算是必须的),所以,我们必须要声明我们的解释器是什么.

一个java程序员的真实经历

半路出家的老java程序员的一点感悟 我是一个老java程序员,现在基本告别编码时代了,当然我现在还在写代码,不是为了老板写了,是自己在创业.回想起这么多年的人生路,作为一名老程序员感慨颇多,尤其是作为一名半路出家的程序员,其中的滋味更是感慨万分.下面我就自己说说我的经历,也许会给未来码农一点启发. 首先讲讲我是怎么成为一个程序员的,这个还真要说说中国的教育.我们国家的这种应试教育一直受到很多人的诟病,有的指责扼杀了学生的创造力,有的指责培养出来的学生就像火腿厂生产的香肠,都是一个味毫无特点而言

第一个 WP 程序 : 手机条码扫描枪

前言碎语: 前段时间,我第一时间尝试了 Windows 8.1 update1 , 结果把我硬盘搞挂了! 升级之后,硬盘一直是100%,平均响应时间能高达400多毫秒. 我自认为我的配置还不错,AMD的4核推土机,8G金仕顿骇客神条, 1T的希捷单碟,两年多点,以前跑 WIN7 / WIN8 / WIN 8.1 都不带眨眼的,怎么遇到TMD Win 8.1 update 1 就变成渣了呢?基本每次启动都要自动修复一下,开机后在磁盘管理里还提示有危险.用检查工具检查了一下,有二十多个坏道,但是没办

为什么用 Java:一个 Python 程序员告诉你

这篇文章专门给程序员写的,普通读者慎入.原作者:Kevin Sookocheff 译者:Celia Zhen,原文点击文末链接. 每当我告诉别人我一直在用Java工作时,大家的反应都是: “纳尼!Java?为啥是Java?” 说实话,本人刚开始的时候也是同样的反应.但是由于Java的类型安全,执行性能和坚如磐石的工具,我渐渐地开始欣赏Java.同时我注意到,现在的Java已今非昔比——它在过去的10年间稳健地改善着. 缘何是Java? 假 设每天都用Java的想法还没有让君恶心到食不下咽,我在此

做一个网站程序的小小感悟

今天,来说一说自己做程序的一点感悟吧.第一点:一定要细心,尤其是对于一个网站程序来说,小到一个链接,网页的相关性这些都是要注意的.第二点:伪静态的编写,有时候也是需要注意顺序的.第三点:上传网站文件一定要注意备份,眼睛一定要看清楚,不要出现传错的现象.第四点:网站上的web.config文件是不一样的,网站上的一定不要覆盖本地的,因为网站上与本地连接的数据库是不一样的.第五点:思考问题一定要全面.第六点:不懂一定要问,不仅仅是问人家,还要问百度,百度就是最好的老师.第七点:不尝试,永远都不会知道

执行awk程序的3种方式

awk是Linux系统中一种强大的数据处理工具,执行awk程序有3种方式.介绍如下: 1. 命令行方式 语法形式:awk ' awk程序语句' 被处理文件名 2. 执行awk脚本方式 语法形式:awk -f awk脚本文件名 被处理文件名 注意:必须要先vi新建一个awk脚本文件,以.awk结尾,里面编辑awk程序. ex11-2.awk脚本文件中只有一个程序{ print } 3. 执行shell脚本文件,不过指定编辑器为awk 语法形式:先vi编辑shell脚本文件,文件名后缀为.sh,不过

一个JAVA程序员成长之路分享

我搞JAVA也有些日子了, 因为我比较贪玩,上进心不那么强, 总是逼不得已为了高薪跳槽才去学习, 所以也没混成什么大牛, 但好在现在也已经成家立业, 小日子过的还算滋润, 起码顶得住一月近万元的吃喝拉撒玩各种贷款信用卡 不为金钱过于发愁了. 我特别感谢当初贴吧遇见的那位大神, 虽然每个月也就聊那么几句, 但是他总能在我不知道该学啥, 该怎么走的时候, 给我方向, 毫不夸张的说,我现在的衣食无忧, 技术马马虎虎, 都是拜他所赐. 所以 我也想分享一些自己的成长过程 以及技术路线 希望一些迷茫的新人