文章目录
简介
awk是文本三剑客之一,其实awk是一种用于处理数据和生成报表的编程语言,awk有很多种版本,这里介绍的是GUN awk(gawk)
工作原理
.
第一步:执行BEGIN{action}语句块中的语句,该语句块不依赖于文件,awk在执行是,将在读取文件之前执行该语句中的语句块,常用语变量的初始化,打印输出表格的表头。
第二步:从文件、标准输入、上一条命令输出结果输入地区一行,然后进行pattern{aciton}语句块,它将逐行扫描文件,从第一行到最后一行。若没有提供pattern语句,则默认执行打印{print},即打印每一个读取到的行。
第三步:当读至文件最后时,执行END{action}语句块。通常用于汇总在pattern语句中执行的过程
命令格式
awk [options] '[pattern]{action}' [var1=value1 var2=value2 ...] file ...
awk [options] -f scripts [var1=value1 var2=value2 ...] file ...
options部分
-
-F :Field separator,字段分隔符,默认字段用空白或tab分隔
-
-f :script file,脚本文件
[root@localhost tmp]# cat test Mary 2143 78 84 77 Jack 2321 66 78 45 Tom 2122 48 77 71 Mike 2537 87 97 95 Bob 2415 40 57 62 [root@localhost tmp]# cat test.awk BEGIN{ math=0; eng=0 com=0; printf"%-8s%-7s%-7s%-7s%-9s%-10s%-7s\n","LineNo","Name","No.","Math","Eng","Com","Total"; printf"--------------------------------------------------------\n" } { math+=$3; eng+=$4; com+=$5; printf"%-8s%-7s%-7s%-7s%-9s%-10s%-7s\n",NR,$1,$2,$3,$4,$5,$3+$4+