Awk operator use

Awk operator

1. Mathematical operators

Add, subtract, multiply, divide, take the remainder

+、-、*、/、%

Small example

BEGIN{
	# print 1+2

	# print 2-1

	# print 2*3

	# print 8/2

	print 4%2
}

2. Awk assignment operator

Equal (assignment operator), addition equals, subtraction equals, multiplication equals, division equals, modulo equals

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

Small example

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
}

Three. Awk comparison operators

Greater than, greater than or equal to, less than, less than or equal to, equal to, not equal to

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

Small example

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
}

Four. Awk logical operators

Logical operations finally return 1 or 0
and, or, and not

&&、||、!

Small example
1.&&
returns false

BEGIN{
	a=10
	b=0

	print a && b
}

Return false

BEGIN{
	a=10
	b=20

	c="linux"
	d="Linux"

	print a<b && c==d
}

2.||
Return false

BEGIN{
	a=0
	b=0

	print a || b
}

Return true

BEGIN{
	a=10
	b=20

	c="linux"
	d="Linux"

	print a<20 || c==d
}

3.!
return false

BEGIN{
	a=10

	print !a
}

Return true

BEGIN{
	a=10
	b=20

	c="linux"
	d="Linux"

	print !(c==d)
}

V. Regular operators

Match, not match

~、!~

Small example
1.~
d matches the beginning of li, and the return result is true

BEGIN{
	d="linuX"

	print d~/^li/
}

2.!~
d does not match the beginning of li, the return result is false

BEGIN{
	d="linuX"

	print d!~/^li/
}

#The return value is 0 or 1

Six. Multiple operators

1. Unary operator

++、--

2. Ternary operator

?:

Small example
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"
}

Operator precedence

Priority from high to low

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

Use () to increase the priority to improve the efficiency of code development

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

	print 2+3*5-6
}

Small example
1. Priority issues

BEGIN{
	a=10
	b=20

	print a=100 && b=200

	print a
	print b
}

2. Solution

BEGIN{
	a=10
	b=20

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

	print a
	print b
}

Guess you like

Origin blog.csdn.net/weixin_39218464/article/details/112140688