其他分享
首页 > 其他分享> > awk 流程控制

awk 流程控制

作者:互联网

if单分支
统计/etc/passwd文件中UID小于或等于1000的用户个数:
awk -F: '{if($3<=1000){i++}}END{print i}' /etc/passwd
统计/etc/passwd文件中UID大于1000的用户个数:
awk -F: '{if($3>1000){i++}}END{print i}' /etc/passwd
统计/etc/passwd文件中解释器使用/bin/bash的用户个数:
awk -F: '{if($7~/\/bin\/bash$/){i++}}END{print i}' /etc/passwd

if双分支
分别统计/etc/passwd文件中UID小于或等于1000的用户个数、UID大于1000的用户个数:
awk -F: '{if($3<=1000){i++}else{j++}}END{print i , j}' /etc/passwd
分别统计/etc/passwd文件中解释器使用/bin/bash的用户个数、不是/bin/bash的个数:
awk -F: '{if($7~/\/bin\/bash$/){i++}else{j++}}END{print i,j}' /etc/passwd

awk数组

awk数组要与shell数组注意区分
1)数据的语法格式
数组是一个可以存储多个值的变量,具体使用的格式如下:
定义数组的格式:array_name[0]=value0
调用数组的格式:array_name[index]
遍历数组的用法:for(变量 in 数组名){print 数组名[变量]}
awk 'BEGIN{a[0]=10;a[1]=20;print a[0],a[1]}'
数组的下标和值都可以是字符
awk 'BEGIN{a[0]="saf";a["asdf"]=20;print a[0],a["asdf"]}'

标签:控制,passwd,流程,个数,etc,awk,数组,print
来源: https://www.cnblogs.com/li-dy/p/16478963.html