Chinaunix首页 | 论坛 | 博客
  • 博客访问: 239138
  • 博文数量: 49
  • 博客积分: 246
  • 博客等级: 二等列兵
  • 技术积分: 1034
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-02 13:18
文章分类

全部博文(49)

分类: 系统运维

2014-07-16 15:12:09

1. 判断键值是否存在
    seq 10 | awk '{a[$1]}END{if("1" in a)print "ok";else print "no"}' #建立数组a,$1作为数组下标,判断 "1" 是否存在数组中。
2. 去重
    awk -F":" '{a[$NF]}END{for(i in a)print i}' /etc/passwd  #建立数组a,最后一个域作为数组下标,循环数组a,数组索引不存在重复。
3. substr截取字符串
    echo abcde|awk  '{print substr($0,1,3)}'  #截取整个域,1,3字符
4.  计算$2,$NF重复次数
     awk '{a[$1]++;b[$NF]++}END{for(k in a)print "\t"k,a[k];for(i in b)print i,b[i]}' 1
5.  split 切割
    echo 12:34:56|awk '{split($0,a,":");print a[1]}' #对$0进行切割,建立数组a,切割符: ,打印a[1] 下标为1,第一个域
6. concatenation 连接,可以合并老字符串来创建新字符串
    seq 10|awk '{a=a $1 " "}END{print a}'
7. if流程控制
    seq 10|awk '{ if($1>5) { print $1 } else if($1>4){print $1} else print "no" }'
8. 读取文件,去空行重复行后,开始从1开始计算行数,总行数*0.95取出值
awk 'NF&&!a[$1]++{b+=1;c[b]=$1}END{print c[int(b * 0.95 )]}'

阅读(1961) | 评论(0) | 转发(0) |
0

上一篇:xshell 开启 key转发功能

下一篇:sed

给主人留下些什么吧!~~