Awk运算符使用

Awk运算符

一. 数学运算符

加、减、乘、除、取余

+、-、*、/、%

小实例

BEGIN{
	# print 1+2

	# print 2-1

	# print 2*3

	# print 8/2

	print 4%2
}

二. Awk赋值运算符

等(赋值运算符)、加等于、减等于、乘等于、除等于、取模等于

=、+=、-=、*=、/=、%=

小实例

BEGIN{
	a=10
	# print a   #10

	# a+=5
	# print a    #15

	# a-=5
	# print a

	# a*=2
	# print a  #20

	# a/=2
	# print a   #5

	a%=2    
	print a   # 0
}

三. Awk比较运算符

大于、大于等于、小于、小于等于、等等于、不等于

>、>=、<、<=、==、!=

小实例

BEGIN{
	# a=10
	# b=20

	# print a>b
	#true 1,false 空

	# print a<=b
	#true 1,false 0

	# print a==b
	#true 1,false 0

	a="mysql"
	b="oracle"

	print a!=b
	#true 1,false 0
}

四. Awk逻辑运算符

逻辑运算最后返回的都是1或0
与、或、非

&&、||、!

小实例
1.&&
返回false

BEGIN{
	a=10
	b=0

	print a && b
}

返回false

BEGIN{
	a=10
	b=20

	c="linux"
	d="Linux"

	print a

2.||
返回false

BEGIN{
	a=0
	b=0

	print a || b
}

返回true

BEGIN{
	a=10
	b=20

	c="linux"
	d="Linux"

	print a<20 || c==d
}

3.!
返回false

BEGIN{
	a=10

	print !a
}

返回true

BEGIN{
	a=10
	b=20

	c="linux"
	d="Linux"

	print !(c==d)
}

五. 正则运算符

匹配、不匹配

~、!~

小实例
1.~
d与li开头匹配,返回结果为true

BEGIN{
	d="linuX"

	print d~/^li/
}

2.!~
d与li开头不匹配,返回结果为false

BEGIN{
	d="linuX"

	print d!~/^li/
}

#返回值都是0或1

六. 多元运算符

1.一元运算符

++、--

2.三元运算符

?:

小实例
1.a++

BEGIN{
	a=10

	b=a++
	#b=a=10
	#a=a+1=11

	print b
	print a
}
BEGIN{
	a=10

	print a++
	print a
}

2.++a

BEGIN{
	a=10
	b=++a

	#b=(a=a+1)=11
	#a=11

	print b
	print a
}

3.?:

BEGIN{
	a=10
	b=20

	print (a!=b)?"ture":"false"
}

运算符优先级

优先级从高到低

$
+,-,!  #正、负、非
*,/,%
+,-   #加、减
>,>=,<,<=,==,!=
~,!~  #正则:匹配、不匹配
&&
||
?:
=,+=,-=,*=,/=,%=

用()来提高优先级,来提高代码的开发效率

BEGIN{
	# print (2+3)*(5-6)

	print 2+3*5-6
}

小实例
1.优先级问题

BEGIN{
	a=10
	b=20

	print a=100 && b=200

	print a
	print b
}

2.解决方法

BEGIN{
	a=10
	b=20

	print (a=100) && (b=200)

	print a
	print b
}

你可能感兴趣的:(#,Awk脚本编程)