• awk编程if for while 使用


    if格式
    {if(表达式){语句1;语句2;……}}
    {if(表达式){语句1;语句2,……}else{语句1;语句2,……}}
    {if(表达式){语句}else if(表达式){语句}else if(表达式){语句}else{语句}}

    awk -F: '{if($3<0 && $3<1000){i++}} END{print i}' /etc/passwd
    awk -F: '{if($3==0){print $1" is administrator."}}' /etc/passwd
    awk -F: ‘{if($3==0){count++}else{i++}}END{print "管理员个数: "count;print "系统用户数: "i}’ /etc/passwd
    awk -F: '{if($3==0){i++}else if($3>999){k++}else{j++}} END{print "管理员个数: "i;print "普通用户数: "k;print "系统用户数: "j}' /etc/passwd



    循环语句(while,for)

    1.while语句

    格式:

    while(表达式)

    {语句}

    2.for 循环

    for循环有两种格式:

    格式1:

    for(变量 in 数组)

    {语句}

    格式2:

    for(变量;条件;表达式)

    {语句}

    awk 'BEGIN{i=1;while(i<=10){print i;i++}}'
    awk -F: 'NR==1{i=1;while(i<=7){print $i;i++}}' /etc/passwd
    awk -F: '/^root/{i=1;while(i<=NF){print $i;i++}}' /etc/passwd
    awk -F: '/^root/{i=1;while(i<=NF){print $0;i++}}' /etc/passwd

    awk 'BEGIN{i=1;while(i<=100){total+=i;i++}print total}'
    5050


    awk 'BEGIN{for(i=1;i<=100;i++){total+=i}print total}'
    5050

    tail -3 /etc/passwd|awk -F: '{user[j++]=$1}END{for(i in user){print i,user[i]}}'
    0 rpcuser
    1 nfsnobody
    2 oracle

  • 相关阅读:
    vi里面全局替换
    guanbi selinux
    ntop
    Java:求一个数组中连续子元素最大和
    LeetCode.643. 子数组最大平均数 I
    分治法-最大子数组问题
    Java实现最大连续子数组和
    golang xorm cmd xorm工具使用 reverse 反转一个数据库结构,生成代码
    golang中xorm的基本使用
    xorm入门
  • 原文地址:https://www.cnblogs.com/xiaofeng666/p/13775558.html
Copyright © 2020-2023  润新知