一、运算符
= += -= *= /= %= ^= **= |
赋值 |
?: |
C条件表达式 |
|| |
逻辑或 |
&& |
逻辑与 |
~ 和 !~ |
匹配正则表达式和不匹配正则表达式 |
< <= > >= != == |
关系运算符 |
空格 |
连接 |
+ - |
加,减 |
* / % |
乘,除与求余 |
+ - ! |
一元加,减和逻辑非 |
^ *** |
求幂 |
++ -- |
增加或减少,作为前缀或后缀 |
$ |
字段引用 |
in |
数组成员 |
二、示例
#过滤第一列大于2的行
[root@localhost ~]# awk '$1>2' log.txt
3 Are you like awk
This's a test
10 There are orange,apple,mongo
#过滤第一列等于2的行
[root@localhost ~]# awk '$1==2 {print $1,$3}' log.txt
2 is
#过滤第一列大于2并且第二列等于'Are'的行
[root@localhost ~]# awk '$1>2 && $2=="Are" {print $1,$2,$3}' log.txt
3 Are you
[root@localhost ~]# awk -F: '$3 == 0' passwd.txt
root:x:0:0:root:/root:/bin/bash
[root@localhost ~]# awk -F: '$3 < 10' passwd.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
[root@localhost ~]# awk -F: '$3 < 5' passwd.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@localhost ~]# awk -F: '$NF == "/bin/bash"' passwd.txt
root:x:0:0:root:/root:/bin/bash
[root@localhost ~]# awk -F: '$1 == "root"' passwd.txt
root:x:0:0:root:/root:/bin/bash
[root@localhost ~]# awk -F: '$1 ~ /roo/' passwd.txt
root:x:0:0:root:/root:/bin/bash
[root@localhost ~]# awk -F: '$1 !~ /roo/' passwd.txt
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin10
[root@localhost ~]# df -P | grep '/' | awk '$4 > 25000'
devtmpfs 485816 0 485816 0% /dev
tmpfs 497836 0 497836 0% /dev/shm
tmpfs 497836 13968 483868 3% /run
tmpfs 497836 0 497836 0% /sys/fs/cgroup
/dev/mapper/centos-root 6486016 1898056 4587960 30% /
/dev/sda1 1038336 140336 898000 14% /boot
tmpfs 99568 0 99568 0% /run/user/0