码迷,mamicode.com
首页 > 其他好文 > 详细

AWK介绍和基本用法

时间:2017-09-25 11:46:07      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:linux

AWK介绍:

        awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。

        awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本。awk其名称得自于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首个字母。实际上 AWK 的确拥有自己的语言: AWK 程序设计语言 , 三位创建者已将它正式定义为“样式扫描和处理语言”。它允许您创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。

        基本用法:awk【options】’BENGIN‘{action;...}pattern{action;...}END{action;...}‘file...

        BENGIN:处理文件之前的操作(通常用来做表头)

        END:处理完后的操作(通常用来做汇总)

        工作原理:从文件中自动读取第一行到内存中,然后把行切割成若干字段(列/域/属性)用awk自带变量$1~$n来表示。$0代表一整行。处理完第一行会自动读取第二行进行处理。

        基本格式:awk【options】‘program‘file...(program由patter和action组成)

        program:pattern(处理方式),当内存中的行满足patter定义时才会对行进行处理,简单来说就是满足指定的条件才会进行处理。

        action(动作):主要是用来打印,一种是无格式的打印(print),一种是有格式的打印(printf)可以指定打印格式。例如:左/右对齐宽度等。

        示例:awk ’{print “hello,awk”}‘  ,输入命令后没有反应,需要输入才有反应。因为没有跟文件所以读取标准输入,前面没有定义pattern,所以输入的都符合条件,然后做出‘打印‘动作。

         awk ‘{print 2**3}(文件或标准输入) :指数运算,打印行数取决于文件行数或初入行数。

        awk‘{print 2*3}‘:(同上)乘法运算。(除法运算支持小数)

        awk‘{print }‘ +文件名/awk‘{print $0}‘+文件名:打印文件所有行

        awk‘{print $[1~n]}‘+文件名:打印文件指定1~n列。默认空白字符为分隔符

        awk -f:‘{print $[1~n]}‘ +文件名:同上。【-f:】指定:为分隔符

        awk -f:‘{print $[1~n],$[1~n]}‘+文件名:打印多列用逗号隔开。

        awk -f:‘{print $[1~n]“:”$[1~n]}‘+文件名 :两列之间用":"作为分隔符

        

AWK介绍和基本用法

标签:linux

原文地址:http://13155475.blog.51cto.com/13145475/1968292

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!