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
}