第八节AWK报告生成器(5)

五,awk中的运算

5,1基本运算符
运算符说明
+加法运算
-减法运算
*乘法运算
/除法运算
%取模(求余)运算
^指数运算

示例:

awk 'BEGIN{a=2;b=3;print a+b,a^b,a*b,a/b,a-b,a%b}'
5,2 赋值运算
运算符说明
=赋值运算
+=表示将前后两个数值相加后的和赋给前面的变量
-=表示将前后两个数值相减后 的值赋给前面的变量
*=表示前后两个数的乘积赋给前面的变量
/=前面的变量表示前后两个数值的商赋给
%=表示将前面的数值除以后面的数值所得的余数赋给前面的变量
^=表示将前面的数值的后面数值次方赋给前面的变量

示例:

awk 'BEGIN{a=2;print a}'
vim 1eefi1e
l
2
3
awk '{a+=2;print a}' leefile
awk '{a-=2;print a}' leefile
awk '{a*=2;print a}' leefile
awk '{a%=2;print a}' leefile
5,3 条件运算
  • awk中的条件运算符只有一个,其语法如下:expression?valuel:value2
  • 这是一个三目运算符,当表达式expression的值为真时,返回值为valuel;否则,返回值为value2

示例:

cat leefile
3 6
10 9
3 3
awk '{max=$1>$2?$1:$2;print NR,"max=",max}' leefile
1 max= 6
2 max= 10
3 max= 3
5,4 逻辑运算符

awk支持3种逻辑运算,分别为逻辑与、逻辑或和逻辑非

运算符说明
&&逻辑与,当前后两个表达式的值全部为真时,其运算结果才为真
||逻辑或,前后两个表达式只要有一个为真,则其运算结果为真
!逻辑非,当表达式的值为真时,其运算结果为假

示例:

awk 'BEGIN{ if (2<1 || 3>2 ) print "yes" }'
awk 'BEGIN{ if (1<2 && 3>2 ) print "yes" }'
awk 'BEGIN{ if ((2<4)) print "yes" }'
yes
awk 'BEGIN{ if (!(2<4)) print "yes" }'
5,5 关系运算
运算符说明
>大于
>=大于或者等于
<小于
<=小于或者等于
==等于
!=不等于
~匹配运算符($1 ~ /^T/表示匹配第一个字段以字符T开头的记录)
!~不匹配运算符($1 !~/a/表示匹配第一个字段不含有字符a的记录)

示例:

awk -F : '$7-/bash/{print $0}' passwd
awk -F : '$6!~/home/&&$7~/bash/{print $0}' passwd 
awk -F : '$3=="1"{print $0}' passwd 
awk -F : '$3!="1"&&/bash/{print $0}' passwd 
awk -F : '$3 <= 10 {print $0}' passwd
  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星鬼123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值