shell编程系列17--文本处理三剑客之awk动作中的表达式用法

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

awk动作中的表达式用法总结: 运算符 含义
+ 加
- 减
* 乘
/ 除
% 模
^或** 乘方
++x 在返回x变量之前,x变量加1
x++ 在返回x变量之后,x变量加1
--x 在返回x变量之前,x变量减1
x-- 在返回x变量之后,x变量减1 、使用awk计算/etc/services中的空白行数量
awk 'BEGIN{sum=0}/^$/{++sum}END{print sum}' /etc/services
、计算学生课程分数平均值,学生课程文件内容如下:
Allen
Mike
Zhang
Jerry
Han
Li # 代码如下:
[root@localhost shell]# 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
Name Chinese English Math Physical Average
Allen 91.00
Mike 93.50
Zhang 83.25
Jerry 83.75
Han 86.25
Li 91.00 [root@localhost shell]# awk 'BEGIN{num1=20;num2+=num1;print num1,num2}' [root@localhost shell]# awk 'BEGIN{num1=20;num2=30;print num1+num2}' [root@localhost shell]# awk 'BEGIN{num1=20;num2=30;print num1-num2}'
-
[root@localhost shell]# awk 'BEGIN{num1=20;num2=30;print num1*num2}' [root@localhost shell]# awk 'BEGIN{num1=20;num2=30;print num1/num2}'
0.666667
# 保留小数后两位
[root@localhost shell]# awk 'BEGIN{num1=20;num2=30;printf "%0.2f\n",num1/num2}'
0.67 [root@localhost shell]# awk 'BEGIN{num1=20;num2=3;printf "%0.2f\n",num1**num2}'
8000.00
# 打印
[root@localhost shell]# awk 'BEGIN{num1=20;num2=3;printf "%0.2f\n",num1^num2}'
8000.00 #
[root@localhost shell]# awk 'BEGIN{x=20;y=x++;print x,y}' [root@localhost shell]# awk 'BEGIN{x=20;y=++x;print x,y}' [root@localhost shell]# awk 'BEGIN{x=20;y=--x;print x,y}' [root@localhost shell]# awk 'BEGIN{x=20;y=x--;print x,y}' # 输出平均值
[root@localhost shell]# cat student.txt
Allen
Mike
Zhang
Jerry
Han
Li
[root@localhost shell]# 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
Allen 91.00
Mike 93.50
Zhang 83.25
Jerry 83.75
Han 86.25
Li 91.00
# 加上标题并格式化输出
[root@localhost shell]# 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
name Yuwen math English Pysical Average
Allen 91.00
Mike 93.50
Zhang 83.25
Jerry 83.75
Han 86.25
Li 91.00

shell编程系列17--文本处理三剑客之awk动作中的表达式用法的更多相关文章

  1. shell编程系列18--文本处理三剑客之awk动作中的条件及if/while/do while/for循环语句

    shell编程系列18--文本处理三剑客之awk动作中的条件及if/while/do while/for循环语句条件语句 if(条件表达式) 动作1 else if(条件表达式) 动作2 else 动 ...

  2. shell编程系列21--文本处理三剑客之awk中数组的用法及模拟生产环境数据统计

    shell编程系列21--文本处理三剑客之awk中数组的用法及模拟生产环境数据统计 shell中的数组的用法: shell数组中的下标是从0开始的 array=("Allen" & ...

  3. shell编程系列14--文本处理三剑客之awk的概述及常用方法总结

    shell编程系列14--文本处理三剑客之awk的概述及常用方法总结 awk是一个文本处理工具,通常用于处理数据并生成结果报告 awk的命名是它的创始人 Alfred Aho.Peter Weinbe ...

  4. shell编程系列20--文本处理三剑客之awk常用选项

    shell编程系列20--文本处理三剑客之awk常用选项 awk选项总结 选项 解释 -v 参数传递 -f 指定脚本文件 -F 指定分隔符 -V 查看awk的版本号 [root@localhost s ...

  5. shell编程系列19--文本处理三剑客之awk中的字符串函数

    shell编程系列19--文本处理三剑客之awk中的字符串函数 字符串函数对照表(上) 函数名 解释 函数返回值 length(str) 计算字符串长度 整数长度值 index(str1,str2) ...

  6. shell编程系列16--文本处理三剑客之awk模式匹配的两种方法

    shell编程系列16--文本处理三剑客之awk模式匹配的两种方法 awk的工作模式 第一种模式匹配:RegExp 第二种模式匹配:关系运算匹配 用法格式对照表 语法格式 含义 RegExp 按正则表 ...

  7. shell编程系列15--文本处理三剑客之awk格式化输出printf

    shell编程系列15--文本处理三剑客之awk格式化输出printf printf的格式说明符 格式符 含义 %s 打印字符串 %d 打印十进制数 %f 打印一个浮点数 %x 打印十六进制数 %o ...

  8. shell编程系列11--文本处理三剑客之sed利用sed删除文本中的内容

    shell编程系列11--文本处理三剑客之sed利用sed删除文本中的内容 删除命令对照表 命令 含义 1d 删除第一行内容 ,10d 删除1行到10行的内容 ,+5d 删除10行到16行的内容 /p ...

  9. shell编程系列9--文本处理三剑客之sed概述及常见用法总结

    shell编程系列9--文本处理三剑客之sed概述及常见用法总结 sed的工作模式:对文本的行数据一行行处理,如下图 sed(stream editor),是流编辑器,依据特定的匹配模式,对文本逐行匹 ...

随机推荐

  1. springboot学习笔记(二)—— springboot的启动模式设置

    把springboot的启动类图标(spring)去掉,在启动类中添加以下代码 package com.xdr.spring; import org.springframework.boot.Bann ...

  2. k8s安装之eventrouter.yaml

    k8s的heapster项目中止以后, 事件收集的项目,就推荐使用https://github.com/heptiolabs/eventrouter项目了 Eventrouter This repos ...

  3. [转]Linux网络 - 数据包的发送过程

    转, 原文:https://segmentfault.com/a/1190000008926093 -------------------------------------------------- ...

  4. md5 32位小写加密源码

    import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; /** * md5 32位小写加密 ...

  5. IDEA 中tomcat图片储存和访问虚拟路径(图片和程序分家)

    本文链接:https://blog.csdn.net/qq_36481052/article/details/78813213 **前段时间,遇到了图片已经储存了文件中也显示有图片,但就是死活访问不到 ...

  6. FasfDFS整合Java实现文件上传下载功能实例详解

    https://www.jb51.net/article/120675.htm 在上篇文章给大家介绍了FastDFS安装和配置整合Nginx-1.13.3的方法,大家可以点击查看下. 今天使用Java ...

  7. 运算符的应用及流程控制if,switch语句

    运算符的应用 1:赋值运算符    简单赋值运算符        例如var useName='tom';//简单赋值运算符    复合赋值运算符        a+=b;//相当于a=a+b;   ...

  8. Hi,this is May.

    “山有木兮木有枝 心悦君兮君不知” 当一个现在的人正在思念过去的人,世间的一切也都会变成过去的样子. 声色的娱乐,本来就如闪电的光.击石的火.男女欢合不过埋香葬玉.赋别鹤离鸾之曲,臂膀一曲一伸的工夫罢 ...

  9. mysql5.7的手动安装

    1.安装必要的组件    | yum install –y autoconf automake imake libxml2-devel expat-devel cmake gcc gcc-c++ li ...

  10. 洛谷 P1279 字串距离 题解

    每日一题 day24 打卡 Analysis 字符串+dp 仔细观察发现,对于f[i][j],它的值为以下三个值中的最小者: f[i-1][j]+k //a[i]对应空格 f[i][j-1]+k // ...