AWK笔记

一、AWK基本介绍

    AWK,它的名称得自于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首个字母,有的地方说AWK是AWK是一种优良的文本处理工具 ,但它更是一个小型的编程语言,广泛应用LINUX环境中,帮助我们进行流控制、数学运算、进程控制语句甚至于内置的变量和函数。它可以做的事情很多,像任何其它语言如C、C++、JAVA一样,你可以用它来做你想做的任何事情,这取决于你能够想到把它用来干什么。我们可以用它来创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表等等功能,它有着像C及JAVA一样的语言格式,因而对于C及JAVA语言的开发者来说,要熟悉AWK那是非常容易的,需要做的就是记一些它特定的命令而已。

    AWK的功能太强大了,不可能用简单的语言来中概括,我这里简单的说明一下它的语言结构,以及后面我会使用一个简单的统计示例来说明它的使用。

    语法结构:

   

    以下说明一下这种结构:

    1、awk为命令;

    2、在BEGIN块的第一个花括号"{}"中,可以定义一些变量或者做一些预处理,以便我们在后面可以使用这些变量,在这里定义的变量是作为全局变量使用的,并且这里执行的动作是在第一个输入行读入之前进行的,也就是说在处理输入内容时,首先执行的是这里的逻辑代码;

    3、第二个花括号"{}"中,用于对输入内容的处理,因为awk是输入,如果没在输入操作行,它将什么也不能够做(除了上面提到的第一个花括号"{}"中逻辑,因为上面的动行是在输入之前进行的操作),如果有多条输入行,那这里将对每个输入行做循环的处理;

    4、END的花括号"{}"中,我们可以对花括号"{}"中执行的结果逻辑,进行再处理,如将统计结果求平均等操作。

 

二、AWK语法结构介绍

    上面有提到AWK是一种编程语言,那它肯定有自己的逻辑处理结构,和C、JAVA语言非常相似,你如果是C、JAVA的开发者,保你一看就会,看下面的关系符介绍和流程控制语句吧。

    1、关系操作符和布尔操作符:

   

操作符

描述

<

小于

>

大于

<=

小于等于

>=

大于等于

==

等于

!=

不等于

    上面的都看着很眼熟吧!

    2、IF条件判断:

    语法格式:

   

    多IF判断:

   

    简单示例:

   

    2、条件操作符:

    语法格式:

    

    简单示例:

   

    3、WHILE循环:

    语法格式:

   

    简单示例:

   

    4、FOR循环:

    语法格式:

   

    简单示例:

   

    怎么样,很眼熟吧,呵,这就是AWK的语法结构。

 

三、简单示例

    这里举一个非常简单的示例,就是将你机器上运行着的JAVA进行的PID给加起来,然后求平均输出,看以下的示例代码:

    1、先通过JPS查看本机的JAVA进程,以便后面验证是否正确:

   

    通过编写简单的AWK脚本:

   

    可以得到如下结果:

    average pid:7499.25

    当然上面的命令是可以不换行编写的:

   

    这个示例到这里也就演示完了,做这样的统计确实是一点意义都没有,但是如果你有一个用户访问的COOKIE记录文件,并且每条访问记录都有记录响应时间,你觉得你能够用上面的示例做一些什么呢?我们不要的是结果,要的是如何去使用,至少如何使用,就看我们自己有什么样的需求了,这不是AWK所能够决定的了。

 

四、总结

    这里只是简单的介绍了一下AWK的语法结构及简单示例,还有很多强大的功能,这个就需要我们大家一起去发掘了,这篇文章只是适合像我这样的初级用户,如果你是初次接触AWK,那就凑合着看吧。

本文出自:冯立彬的博客




  • 0
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值