awk 脚本编程
awk调用变量
自定义内部变量 -v
awk -v user=root -F: '$1 == user' /etc/passwd
-v定义变量
外部变量 " ’ '"
双引号
# var="bash"
# echo "unix script" | awk "{print "123",\"$var\"}"
123 bash
注意 awk调用外部变量时,外部使用双引号,内部也使用双引号,但需要转义内部的双引号
单引号
# var="bash"
# echo "unix script" |awk '{print $1,"'"$var"'"}'
unix bash
注意使用单引号时,内部需要用双引转义
条件判断
if 语句
格式
{if(表达式){语句;语句;…}}
示例
如果$3是0,就说他是管理员
awk -F: '{if($3==0) {print $1 " is administrator."}}' /etc/passwd
if…else 语句
格式
{if(表达式){语句;语句;…}else{语句;语句;…}}
{if(){}else{}}
示例 1
如果第三列是0,打印该行第一列,否则法印第七列,登入shell
awk -F: '{if($3==0){print $1} else {print $7}}' /etc/passwd
示例 2
统计管理员和系统用户的数量
awk -F: '{if($3==0){count++} else{i++}} END{print "管理员个数: "count ; print "系统用户数: "i}' /etc/passwd
if…else if…else 语句
格式
{if(表达式1){语句;语句;