【shell编程】 awk 常见练习题整理

【1】 打印UID在30-40之间的用户名
     awk -F : '{ for(i=30;i<=40;++i) if (i==$3) print $1,$3}' /etc/passwd

【2】打印第5-10行,输出用户名和行号

     awk -F : '{if(NR>=5&&NR<=10) print NR,$1}' /etc/passwd 

【3】打印奇数行
     awk -F : '{if(NR%2!=0) print $0}' /etc/passwd | head -5

【4】 打印偶数行
awk -F : '{if(NR%2==0) print $0}' /etc/passwd | head -5

【5】 打印UID不等于GID的用户名
 awk -F : '{if($1!=$5) print $1,$5}' /etc/passwd 

【6】 打印没有指定shell的用户名
 awk -F : '{if($7=="") print $1}' /etc/passwd 

7 打印1-1000以内能被7整除的数和包含7的数
 awk -f test7.awk


  1 BEGIN{
  2   for ( i=1;i<=1000; i++){
  3      if(i%7==0)  printf ("\033[1;33m%d\033[0m\t",i)
  4      else if (i%10==7)  printf ("%d\t",i)
  5      else if ((i/10)%10==7) printf ("%d\t",i)
  6      else if ((i/100)%10==7)  printf ("%d\t",i)
  7 
  8 }
  9  print ""
 10 }


  1 BEGIN{
  2   for( i=1; i<=1000;i++)
  3    if (i~/7/ || i%7==0) printf i "\t"
  4 }






  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值