zoukankan      html  css  js  c++  java
  • awk高级用法

    案例一:
     cat a.txt | awk '{a[$NF]+=$10}END{for(k in a)print a[k],k}'

    [root@rac01 zabbix_agentd.d]# more a.txt
    2838 root 20 0 884m 61m 29m S 3.9 3.1 3:53.26 ohasd.bin 5402 grid RT 0 759m 225m 52m S 3.9 11.3 2:58.10 ocssd.bin 5313 grid 20 0 827m 45m 24m S 1.9 2.3 0:27.86 oraagent.bin 5375 root RT 0 756m 214m 53m S 1.9 10.7 0:34.73 cssdagent 5506 grid 20 0 736m 42m 20m S 1.9 2.1 0:45.76 evmd.bin 5581 grid 20 0 473m 49m 42m S 1.9 2.5 0:09.54 oracle 5589 grid 20 0 474m 53m 46m S 1.9 2.7 0:23.12 oracle 5591 grid 20 0 482m 54m 42m S 1.9 2.7 0:15.15 oracle 5601 grid -2 0 481m 56m 43m S 1.9 2.8 0:12.17 oracle 5649 root 20 0 1005m 82m 35m S 1.9 4.1 2:03.12 crsd.bin [root@rac01 zabbix_agentd.d]# cat a.txt | awk '{a[$NF]+=$10}END{for(k in a)print a[k],k}' 10.7 oracle 3.1 ohasd.bin 11.3 ocssd.bin 4.1 crsd.bin 2.3 oraagent.bin 2.1 evmd.bin 10.7 cssdagent [root@rac01 zabbix_agentd.d]# $NF 源文件的最后一列 a[$NF] 等于 a[最后一列值] a[$NF]+=$10 其中$NF充当数组的下标;将整个文件创建数组 例如:源文件的最后一列值相同时候,自动统计第10列所有相同列的结果 for( k in a) 其中a为数组,k为数组的下标

    [root@rac01 zabbix_agentd.d]# cat /etc/passwd | head -3 | awk -F ":" '{a[$1]+=$3}END{for(k in a) print k,a[k]}'
    bin 1
    daemon 2
    root 0

    {a[$1]+=$3} ==>>  第一列为下标,第三列为值

    a["root"]=0; a["daemon"]=2;a["bin"]=1












  • 相关阅读:
    Linux信号列表(zz)
    TCP状态转移图学习总结
    UNP学习笔记之四select和poll
    RSS2.0结构
    UNP学习笔记二简单的并发服务器(concurrent servers)
    js面向对象基础(zz)
    libevent introduction
    Linux下Makefile的automake生成全攻略(zz)
    UNP学习笔记之三POSIX Signal Handling
    关于网络编程(服务端)的一些笔记(zz)
  • 原文地址:https://www.cnblogs.com/vmsysjack/p/12618879.html
Copyright © 2011-2022 走看看