awk -F: '{if($3>=500 && <=60000) {print $1,$3} }' 1.txt //打印文件里的user和uid
注意不可以把逻辑运算符整体使用在awk变量两边
awk -F: '{if($3==0) {print $1"\tis admin"} else {print $1"\tis not admin"}}' 1.txt
//如果满足uid=3,则打印is admin
awk -F: '{if($3==0) {i++} else if($3>=1 && $3<=499 || $3==65534) {j++} else {k++}};END{print "管理员个数为:"i "\n系统用户个数为:"j"\n普通用户个数为:"k }' 1.txt
//awk定义i、j、k变量统计各人员数量
awk 'BEGIN{i=1;while(i<=5) print i;i++}' //while循环打印1到5
awk '{for(i=1;i<=10;i+=2) {print $0} }' 1.txt //循环打印5次当前记录,每条记录5次
awk '{for(i=1;i<=5;i++) {print $0} }' 1.txt //循环打印每条记录5次
一个awk语句{}默认是一个命令,如果没有{}必须加;
awk 'BEGIN{for(i=1;i<=5;i++) (sum+=i);print sum}' //for循环打印1到5的和
awk 'BEGIN{i=1;while(i<=5) (sum+=i) i++;print sum}' //while循环打印1到5的和
嵌套循环
awk 'BEGIN{for(y=1;y<=5;y++) {for(x=1;x<=y;x++) printf x;print } }' //循环打印
1
12
123
1234
12345
awk 'BEGIN{y=1;while(y<=5) {for(x=1;x<=y;x++) {printf x} y++;print }}' //y++之后换行
awk -F: '{shells[$NF]++ };END{for (i in shells) {print i,shells[i]} }' /etc/passwd
循环打印shells数组下标并统计下标个数