日历

2017年十二月
« 9月    
 123
45678910
11121314151617
18192021222324
25262728293031

最近评论

    AWK的使用

    awk的使用 第六部分 awk编程的几个实例

        在这里举个例子,统计上班到达时间及迟到次数的程序。这程序每日被执行时将读入二个文件:员工当日上班时间的数据文件 ( arrive.dat ) 存放员工当月迟到累计次数的文件当程序执行执完毕后将更新第二个文件的数据(迟到次数), 并打印当日的报表。
        此程序的步骤分析如下:
        [6.1] 在上班数据文件arrive.dat之前增加一行标题 “ID Number Arrvial Time”,并产生报表输出到文件today_result1中。   
        [6.2]将today_result1上的数据按员工代号排序, 并加注执行当日日期;  产生文件today_result2
        [6.3] 将awk程序包含在一个shell script文件中
        [6.4] 在today_result2 每日报表上,迟到者之前加上”*”,并加注当日平均上班时间;产生文件today_result3
        [6.5] 从文件中读取当月迟到次数, 并根据当日出勤状况更新迟到累计数。

    AWK的使用

    awk的使用 第五部分 在awk中使用shell命令

       awk程序中允许使用Shell指令,使用管道在awk和系统中进行数据传递,所以awk可以很容易的使用系统资源。 
      比如写一个awk程序来打印出当前系统上有多少用户登录。awk的脚本文件名为usernumber.awk,脚本内容如下:

    [root@benet pub]# cat usernumber.awk
    #!/bin/awk -f
    BEGIN{
    while(“who”|getline) n++;
    print n;
    }
        执行结果如下:
    [root@benet pub]# awk -f usernumber.awk
    2 #即有两个用户登录了系统

    AWK的使用

    awk的使用 第4部分 在awk中使用数组

        awk程序中允许使用字符串当做数组的下标(index),这个特点有助于资料的统计。(使用字符串当下标的数组称为Associative  Array)
        首先建立一个名为kecheng.dat数据文件,内容是学生选课的内容;第一栏为学生姓名,其后为该生所学课程,内容如下:
     [root@benet pub]# cat kecheng.dat
    zhangsan math english chinese
    lisi     computer chinese english
    wangwu dianzi chinese math
    zhaoliu huanjing english chinese
        awk中数组不需要声明,也不用指定数组的大小,直接使用字符串当数组的下标(index)。 以上边学生选课为数据文件统计一下kecheng.dat 中学习各门课程的人数。
        这种情况,有二项信息必须储存: (a) 课程名称, 如:math,English,共有哪些课程事先并不明确。 (b)各课程的选修人数。 如: 有几个人选修了“math”。