⑴c.awk ’BEGIN{
⑵for(k in ENVIRON
⑶print k“=”ENVIRON[k];
⑷}‘ #ENVIRON是awk常量,是数组
⑸d.awk ’BEGIN{
⑹for(i=;i《=;i++
⑺total+=i;
⑻print total;
⑼}‘
⑽e.awk ’BEGIN{
⑾total+=i;
⑿}while(i《=
⒀print total;
⒁}‘
⒂awk ’BEGIN{OFMT=“%.f”;fs=sin(;fe=exp(;fl=log(;fi=int(.;print fs,fe,fl,fi;}‘ #OFMT 设置输出数据格式是保留位小数
⒃awk ’BEGIN{srand(;fr=int(*rand(;print fr;}‘ #获得随机数
⒄awk ’BEGIN{info=“this is a testtest!”;gsub(/[-]+/,“!”,info;print info}‘ #在 info中查找满足正则表达式,/[-]+/ 用””替换,并且替换后的值,赋值给info 未给info值,默认是$
⒅awk ’BEGIN{info=“this is a testtest!”;print index(info,“test”?“ok”:“no found”;}‘
⒆awk ’BEGIN{info=“this is a testtest!”;print match(info,/[-]+/?“ok”:“no found”;}‘ #正则匹配
⒇awk ’BEGIN{info=“this is a testtest!”;print substr(info,,;}‘ #从第 个 字符开始,截取个长度字符串
⒈awk ’BEGIN{info=“this is a test”;split(info,tA,“ ”;print length(tA;for(k in tA{print k,tA[k];}}‘ #分割info,动态创建数组tA
⒉awk ’BEGIN{tstamp=mktime(“ ”;print strftime(“%c”,tstamp;}‘
⒊awk ’BEGIN{tstamp=mktime(“ ”;tstamp=mktime(“ ”;print tstamp-tstamp;}‘ #求个时间段中间时间差
⒋awk ’BEGIN{while(“cat /etc/passwd”|getline{print $;};close(“/etc/passwd”;}‘ #打开外部文件
⒌awk ’BEGIN{while(getline 《 “/etc/passwd”{print $;};close(“/etc/passwd”;}‘ #逐行读取外部文件
⒍awk ’BEGIN{print “Enter your name:”;getline name;print name;}‘
⒎awk ’BEGIN{b=system(“ls -al”;print b;}‘ #调用外部应用程序
⒏a.printf
⒐awk ’BEGIN{n=.;n=-.;n=.; printf(“%.f,%.u,%.g,%X,%o
⒑”,n,n,n,n,n;}‘ #类似于C语音
⒒#!/bin/awk -f
⒓for(i=;i《=;i++
⒔for(j=;j《=;j++
⒕tarr[i,j]=i*j;
⒖print i,“*”,j,“=”,tarr[i,j];
⒗.在awk中有两个特别的表达式,BEGIN和END,这两者都可用于pattern中,提供BEGIN和END的作用是给程序赋予初始状态和程序结束之后执行一些扫尾的工作。任何在BEGIN之后列出的操作(在{}内将在awk开始扫描输入之前执行,而END之后的操作将在扫描完全部的输入之后执行。因此通常BEGIN来显示变量和初始化变量,使用END来输出最终结果。
⒘.awk中数据类型,是不需要定义,自适应的。 有时候需要通过(+、“”强制转换。
⒙.awk数组下标是从开始,与c数组不一样。
⒚.awk的多维数组在本质上是一维数组,更确切一点,awk在存储上并不支持多维数组。awk提供了逻辑上模拟二维数组的访问方式。例 如,array[,] = 这样的访问是允许的。awk使用一个特殊的字符串SUBSEP (作为分割字段,在上面的例子中,关联数组array存储的键值实际上是。多维数组可以使用if((i,j in array这样的语法,但是下标必须放置在圆括号中。多维数组使用 for ( item in array 这样的语法遍历数组。与一维数组不同的是,多维数组必须使用split(函数来访问单独的下标分量。split ( item, subscr, SUBSEP
⒛.awk实现的性能是比shell实现的强
①上面就是Linux下awk文本处理工具的用法介绍了,因为awk是Linux下功能最强大的数据处理引擎之一,所以其用法要讲解起来可不止文中介绍的这些,本文只是介绍了它的基本用法。