awk --z

来源:互联网 发布:win7 windows temp 编辑:程序博客网 时间:2024/04/30 11:36

在shell命令或编程中,可以用AWK强大的的文本处理能力。如果要格式化报文或从一个大的文本文件中抽取数据包,那么awk可完成这些任务。awk是一种解释的编程语言。awk也是shell过滤工具中最难掌握的。awk是一种自解释的编程语言。结合awk和sed和grep,将会使awk编程更加容易。

awk语言最基本的功能是在文件或字符串中基于指定的规则浏览和抽取信息。

有三种方式可调用awk.

<1>.命令行方式。

<2>.将所有的awk命令插入一个文件,并利用chmod使awk文件成为执行。

<3>.将所有的awk命令插入一个单独文件,然后调用。

以下简单介绍awk的各种方式,详细请查看相关另外文档

在awk中有四种概念。

1.抽取域

2.匹配正则表达式

3.比较域

4.向awk传递参数

以下简单介绍:

1).保存awk输出: #awk '{print $0}'  myfile>newfile

2).使用tee,在输出到文件的同时输出到屏幕(利用管道'|')

     #awk '{print $0}' myfile |tee newfile

3).打印报告头,#awk 'BEGIN {print "hello,this is Title\n---------"}{print $0}' newfile

4).打印信息尾.#awk 'BEGIN{print $0} END {"end of file."}' myfile

5).匹配,如下若在myfile第二列中带有BROWN,则打印信息

     #awk '{if ($2~/BROWN/) print $0}' myfile

6).精确匹配,同上,只是将~改为==

7).不匹配,有时要浏览信息并抽取不匹配操作的记录,与~相反的符号是!,如下

#awk '$0 !~/BROWN/' myfile

8).比较

 如小于: #awk 'if ($1<$2) print $1' myfile

9).设置大小写 #awk '[Gg]reen/' myfile

10).任意字符,表达式/^...a/意为前三个字符是任意字符

  #awk '$1~/^...a/' myfile

11).或关系匹配,#awk '$0~/(YELLOW || RED)/' myfile

12).与:&& ,或:||

13).awk内置变量

 <1>.要快速查看记录个数,应使用NR,如:#awk 'END {print NR}' myfile <2>.以下使用NF变量显示每一条读记录中有多少个域,并在END部份  打印输入文件名。#awk '{print NR,NF,$0} END {print FILENAME}' myfile

<3>. 判断并输出 . #awk '{if(NR>0 && $4~/BROWN/) print $0' myfile

14).可以设置输入域到域变量名。

15).域值比较操作。

   @1.在BEGIN中给变量名赋值。通常在BEGIN部分赋值是很有益的,可以在awk表达式进行改动时减少很大麻烦.

   @2.在关系操作中使用实际数值,使用关系操作时必须用括号括起来.

 #awk '{if($6<27) print $0}' myfile

 #awk 'BEGIN {BASELINE="27"}{if ($6<BASELINE) print $6}' myfile

  17).修改数据域取值

 当在awk中修改任何域时,重要的一点是实际的文件可修改,改动的是cache中的awk复本,awk会在变量NR或NF中反映出修改的痕迹。

#awk '{if($1=="M.TANS")$6=$6-1;print $6}' myfile

18).修改文本域

 #awk '{if($1=="J.Troll")($1="J.L.Troll");print $1}' myfile

19).只显示修改记录

#awk '{if($1=="J.Troll"){$1="J.L.Troll";print $1}}' myfile

20).创建新的输出域

在awk中处理数据时,基于各域进行计算的创建新域是个好的习惯。如下示例:

 #awk 'BEGIN{print "Name    Score\t"}if($6<$7){$8=$7-$6;print $8}' myfile

21).增加列值

 #awk 'tot+=$6;END{print "Club Total point." tot}' myfile

22).使用模式打印文件名及其长度,放入变量tot中

#ls -l | awk'/^[^d]{print $9 "\t" $5}{tot+=$5} END {print "Total KB:tot"}'

23).awk内置的字符串函数

24).awk脚本文件

如以上的所述的诸多情况,这里只不过命令放在一个文件中,且该文件必须是!/bin/awk -f ,因为这样才会使这个文件可以自解释。否则将不能作用。为了容易分别,最好将文件带一个扩展名.awk,完成对文件的编写后,再利用chmod  u+x使文件可以执行。

   以上只是我在实验中的一些情况,awk命令功能很强大,大家可以参考其它的一些手册去获得更清楚的说明。

http://blog.csai.cn/user1/27828/archives/2007/14197.html


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 超市盘点少东西怎么办 货到付款买家不收怎么办 快递员忘记收钱怎么办 发货了买家退款怎么办 买家一直不退款怎么办 京东商家退货怎么办 发货后退货邮费怎么办 淘宝货到退款怎么办 淘宝收不到货怎么办 淘宝不处理投诉怎么办 实体店不能退货怎么办 顾客无理由退货怎么办 京东衣服质量问题怎么办 买家退货要运费怎么办 卖家不给退运费怎么办 淘宝申请退款卖家不退怎么办 网购商家报复怎么办 淘宝退货店家不同意怎么办 淘宝退货不同意退款怎么办 运费险没收到怎么办 地税逾期未申报怎么办 转转买家发到付怎么办 捡到苹果手机打不开怎么办 捡到指纹手机打不开怎么办 捡到手机密码打不开怎么办 遇到假苹果售后怎么办 做微商被骗囤货怎么办 代理如果不做了怎么办 微商加盟费不退怎么办 手机背面发霉了怎么办 手机电池被换了怎么办 苹果6pcpu发热怎么办 手机漏电怎么办手发麻 iphone主板烧了怎么办 ioS13.1抹掉数据怎么办 阿迪达斯 实体店 假货 怎么办 椰子v2鞋底发黄怎么办 椰子鞋 白色脏了怎么办 微信照片过期怎么办 开淘宝店快递怎么办 淘宝下架cmcc怎么办