awk 表达式

awk动作表达式中的算数运算符

awk动作表达式中的算数运算符

案例演示

使用awk计算/etc/services中的空白行数

awk ‘BEGIN{sum=0}/^$/{++sum}END{print sum}‘ /etc/services

计算学生课程分数平均值,学生课程文件内容如下

student.txt

Allen    80    90    96    98
Mike    93    98    92    91
Zhang    78    76    87    92
Jerry    86    89    68    92
Han    85    95    75    90
Li    78    88    98    100

  

awk ‘BEGIN{printf "%-20s%-20s%-20s%-20s%-20s%-20s\n","Name","Chinese","English","Math","Physical","Average"}{sum=$2+$3+$4+$5;avg=sum/4}{printf "%-20s%-20d%-20d%-20d%-20d%-0.2f\n",$1,$2,$3,$4,$5,avg}‘ student.txt

awk ‘BEGIN{num1=20;num2+=num1;print num1,num2}‘

awk ‘BEGIN{num1=20;num2=30;print num1+num2}‘

awk ‘BEGIN{num1=20;num2=30;print num1-num2}‘

awk ‘BEGIN{num1=20;num2=30;print num1*num2}‘

awk ‘BEGIN{num1=20;num2=30;print num1/num2}‘

保留小数后两位

awk ‘BEGIN{num1=20;num2=30;printf "%0.2f\n",num1/num2}‘

awk ‘BEGIN{num1=20;num2=3;printf "%0.2f\n",num1**num2}‘

awk ‘BEGIN{x=20;y=x++;print x,y}‘

awk ‘BEGIN{x=20;y=++x;print x,y}‘

awk ‘BEGIN{x=20;y=--x;print x,y}‘

输出平均值

awk ‘{total=$2+$3+$4+$5;AVG=total/4}{printf "%-8s%-5d%-5d%-5d%-8d%0.2f\n",$1,$2,$3,$4,$5,AVG}‘ student.txt

加上标题并格式化输出

awk ‘BEGIN{printf "%-10s%-10s%-10s%-10s%-10s%-10s\n","name","Yuwen","math","English","Pysical","Average"}{total=$2+$3+$4+$5;AVG=total/4}{printf "%-10s%-10d%-10d%-10d%-10d%-10.2f\n",$1,$2,$3,$4,$5,AVG}‘ student.txt

  

  

  

  

  

原文地址:https://www.cnblogs.com/crazymagic/p/11154701.html

时间: 2024-11-17 13:30:55

awk 表达式的相关文章

awk表达式和操作符

awk的表达式和操作符 +       加 -       减 *       乘 /       除 %       取于 ^       幂运算 ++ 自加1 -- 自减1 += 相加后赋值给变量(x+=9等同与x=x+9) -=      相减后赋值给变量(x-=9等同与x=x-9) *=      相乘后赋值给变量(x*=9等同与x=x*9) /= 相除后赋值给变量(x/=9等同与x=x/9) > 大于 < 小于 >=      大于等于 <=      小于等于 ==  

awk简单应用详解

gawk:pattern scanning and processing language 语法:gawk [options] 'program' FILE ... program:PATTREN{ACTION STATEMENTS} 选项: -F :指明输入数据时的字段分隔符 -v var=value:自定义变量 1.print print item1,item2,... 要点:(1) 逗号分隔符 (2) 输出的各item可以是字符串,数值,字段(使用&引用),变量(直接输入变量即可)或者aw

awk简单实用功能

awk实用功能: (来自网友Stephen Liu) 和sed一样,awk也是逐行扫描文件的,从第一行到最后一行,寻找匹配特定模板的行,并在这些行上运行"选择"动作.如果一个模板没有指定动作,这些匹配的行就被显示在屏幕上.如果一个动作没有模板,所有被动作指定的行都被处理. awk的基本格式:/> awk 'pattern' filename/> awk '{action}' filename /> awk 'pattern {action}' filename [[e

awk详解【一】

awk简介: awk是贝尔实验室1977年搞出来的文本神器,对于熟悉使用linux的朋友们来说,awk无疑是强大的.说到awk,就不得不提到一本书.<the awk programming language>据说这本书要将近1k呢.好吧,我没看过.其实linux下有很多强大的文本编辑工具包括(sed |nl |ed |tr |cut |fold |strings等等)先从awk开始吧 [参考手册可以看看下面的链接地址] http://www.gnu.org/software/gawk/manu

Linux Shell学习--awk命令详解

(1).awk介绍 awk是由Alfred Aho .Peter Weinberger 和 Brian Kernighan于1977年开发的变成语言,awk是上述三位创建者姓的首字母. Awk的基本语法与c语言类似,如果对c语言很熟悉,那么学习awk编程也将事半功倍. Awk功能与sed相似,都是用来进行文本处理的,awk语言可以从文件或字符串中基于指定规则浏览和抽取信息,在抽取信息的基础上,才能进行其他文本操作.   awk是一款设计用于数据流的工具.它颇有玩头的原因就在于可以对列和行进行操作

awk系列:在awk中如何使用流程控制语句

导读 当你回顾所有到目前为止我们已经覆盖的 awk 实例,从 awk 系列的开始,你会注意到各种实例的所有指令是顺序执行的,即一个接一个地执行.但在某些情况下,我们可能希望基于一些条件进行文本过滤操作,即流程控制语句允许的那些语句. 在 awk 编程中有各种各样的流程控制语句,其中包括: if-else 语句 for 语句 while 语句 do-while 语句 break 语句 continue 语句 next 语句 nextfile 语句 exit 语句 然而,对于本系列的这一部分,我们将

Linux Shell常用技巧(四) awk

Linux Shell常用技巧(四) awk 九.  awk实用功能: 和sed一样,awk也是逐行扫描文件的,从第一行到最后一行,寻找匹配特定模板的行,并在这些行上运行"选择"动作.如果一个模板没有指定动作,这些匹配的行就被显示在屏幕上.如果一个动作没有模板,所有被动作指定的行都被处理.       1.  awk的基本格式:    /> awk 'pattern' filename    /> awk '{action}' filename    /> awk '

Shell编程之---awk命令详解

awk编程 awk是一种编程语言.gawk.是最新版本,当前的linux版本用的都是gawk awk是gawk的软链接 awk工作原理 BEGIN   #在未读取文件行之前执行 主输入循环 (main input loop),反复执行,直到终止条件触发 END     #在读取文件行完毕后执行 awk的三种调用方法 1.在shell命令行输入命令调用awk #awk [-f 域分隔符] 'awk cmd' file 2.在awk程序段插入脚本文件,然后通过awk命令调用他 #awk -f 'aw

AWK使用

awk是一个强大的文本分析工具.相对grep sed awk显得更屌炸. [[email protected] pangbing]# awk -Wversion  或是awk --version GNU Awk 3.1.7 Copyright (C) 1989, 1991-2009 Free SoftwareFoundation. 2.域和记录        域的标记为$1 $2 $3......这种方法称为域标识.    $0表示所有域 .例子:awk '{print $0}'文件名