条件判断概述
- 输出所有行还是输出部分行
- 如何限制仅输出部分行的数据内容
- 如何设置多个条件
- 基本语法
- 条件表达式
- 正则
$ awk -F: '/^ro/{print}' /etc/passwd
root:x:0:0:root:/root:/bin/bash
$ awk -F: '$7!~/bash$/{print $1,$7}' /etc/passwd
- 数值、字符串比较
- == 等于、!= 不等于
- > 大于、>= 大于或等于
- < 小于、<= 小于或等于
$ awk 'NR==2{print}' /etc/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
$ awk -F: '$7!="/bin/bash"' /etc/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
$ awk -F: '$3>=1000{print $1}' /etc/passwd
caowg
$ awk -F: '$3>=0&&$3<2{print $1,$3}' /etc/passwd
root 0
bin 1
$ awk -F: '$3==1||$3==7{print $1,$3}' /etc/passwd
bin 1
halt 7
- 运算符
- +,-,*,/,%
- ++,--,+=,-+,*=,/=
$ awk 'NR%2==1{print}' /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:2:2:daemon:/sbin:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
$ seq 200 | awk 'BEGIN{i=0} ($0%3==0)&&($0%13==0){i++} END{print i}'
5
小结