• awk 统计数据在文件中的出现次数


    突然发现awk原来可以统计同一数据在要处理的文件中所出现的次数.原来的时候为了分析数据还自己写程序,哎,无语,当时还以为自己多强,手工分析不过来的东西写程序处理.现在想来实在是年少轻狂.解决问题嘛,不讲究方式,只要快速高效的完成任务就OK了.

         好,今天小试牛刀统计了一下passwd文件中shell部分重复的shell名和出现的次数,看命令:

    $awk -F: '{a[$7]++}END{for (i in a) print i" "a[i]}' /etc/passwd

    /bin/false 13

    /bin/sh 18

    /bin/bash 2

    /usr/sbin/nologin 1

    /bin/sync 1

    解说一下:

    -F: 以:分割字段

    a[$7]++ 定义了个名称为a的数组$7在passwd文件中是shell名,在这里是数组索引.awk的数据索引可以是是字符类型这点真是太帅了.

    for (i in a) print i" "a[i]

    用for循环取出数据来,这时候i取的时下标,a[i]是里面存储的数据

    是$7出现的次数,狠!

         郁闷了,这办法太强了,以后再遇到问题还是先baidu,再google然后再自己动手吧!

    再试个:

    cat album_photo_111.txt | awk '{a[$1]++}END {for(i in a) print i" "a[i]}'

     还可以这样

     cat album_photo_111.txt| awk '{print $1}'  | sort | uniq -c

    试个稍微复杂点的

    zcat 131225.photo.weibo.com_10.72.13.87.cn.gz | awk '{print $3}' |  sed 's/s/ /g' | awk -F . '{print $1}' | awk '{ a[$1]++ }END  { for(i in a) print i" "a[i] }' | sort -k1 -rn 

    哈哈哈哈

  • 相关阅读:
    3. Image Structure and Generation
    STM32F103
    10.2 External interrupt/event controller (EXTI)
    10.1 Nested vectored interrupt controller (NVIC) 嵌套矢量中断控制器
    ibatis 使用 in 查询的几种XML写法
    文字纵向打印
    oracle每天清理归档日志
    使用语句查询mssql死锁
    Xml序列化UTF-8格式错误
    Nginx的优点
  • 原文地址:https://www.cnblogs.com/gaoj87/p/3494539.html
Copyright © 2020-2023  润新知