awk作為文本處理優秀工具之一,它有獨自豐富的運算符。下面我們一起歸納總結一下,所有運算符。 可以分為:算術運算符,賦值運算符,關系運算符,邏輯預算法,正則運算符。
一、運算符介紹
運算符
描述
賦值運算符
= += -= *= /= %= ^= **=
賦值語句
邏輯運算符
||
邏輯或
&&
邏輯與
正則運算符
~ ~!
匹配正則表達式和不匹配正則表達式
關系運算符
< <= > >= != ==
關系運算符
算術運算符
+ -
加,減
* / &
乘,除與求余
+ - !
一元加,減和邏輯非
^ ***
求冪
++ --
增加或減少,作為前綴或後綴
其它運算符
$
字段引用
空格
字符串連接符
?:
C條件表達式
in
數組中是否存在某鍵值
說明:awk運算符基本與c語言相同。表達式及功能基本相同
二、實例介紹
a+=5; 等價於:a=a+5; 其它同類
[chengmo@localhost ~]$ awk 'BEGIN{a=1;b=2;print (a>5 && b<=2),(a>5 || b<=2);}'
0 1
[chengmo@localhost ~]$ awk 'BEGIN{a="100testa";if(a ~ /^100*/){print "ok";}}'
ok
如:> < 可以作為字符串比較,也可以用作數值比較,關鍵看操作數如果是字符串 就會轉換為字符串比較。兩個都為數字 才轉為數值比較。字符串比較:按照ascii碼順序比較。
[chengmo@localhost ~]$ awk 'BEGIN{a="11";if(a >= 9){print "ok";}}'
[chengmo@localhost ~]$ awk 'BEGIN{a=11;if(a >= 9){print "ok";}}'
ok
說明,所有用作算術運算符 進行操作,操作數自動轉為數值,所有非數值都變為0。
[chengmo@localhost ~]$ awk 'BEGIN{a="b";print a++,++a;}'
0 2
?:運算符
[chengmo@localhost ~]$ awk 'BEGIN{a="b";print a=="b"?"ok":"err";}'
ok
in運算符
[chengmo@localhost ~]$ awk 'BEGIN{a="b";arr[0]="b";arr[1]="c";print (a in arr);}'
0
[chengmo@localhost ~]$ awk 'BEGIN{a="b";arr[0]="b";arr["b"]="c";print (a in arr);}'
1in運算符,判斷數組中是否存在該鍵值。