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