zoukankan      html  css  js  c++  java
  • 『转』统计一个日志文件里,单词出现频率的shell脚本

    原文地址:http://blog.csdn.net/taiyang1987912/article/details/39995175

    #查找文本中n个出现频率最高的单词  
    #!/bin/bash  
    count=$1                         #$1是输出频率最高单词的个数  
      
    cat $2 |                         #$2是目标文本文件名称也可是是字符串  
    tr -cs "[a-z][A-Z][0-9]" "
    " |  #tr是sed的简化,-c用前字符串中字符集的补集替换成后字符串即将不是字符和数字的单词替换换行  
                                     #-s删除所有重复出现换行,只保留第一个  
                                     #可以写成tr -cs "[a-z][A-Z][0-9]" "12"或tr -cs "[a-z][A-Z][0-9]" "[12*]"  
      tr A-Z a-z |                   #将大写字母换化为小写字母  
        sort |                       #对单词进行排序  
          uniq -c |                  #删除文本文件中重复出现的行,-c在每列旁边显示该行重复出现的次数  
            sort -k1nr -k2 |         #字符串以空格分成域,先按第一个域排序,在按第二个域排序  
                                     #-k1指定第一个域,-n按数字大写排序,-r排序结果逆向显示  
              head -n $count         #显示前n行  

    这里的核心命令: 管道符| 、 cat  sort 、uniq -c(去重并且统计出现次数)、tr (把出现的空格[非单词] 换行)

    $1是取的就是前几行最高频次的

    $2是要查看的文本日志名称

    -

  • 相关阅读:
    二维数组转换
    二维数组转换
    二分法原理
    二维数组举例
    二分法原理
    二维数组举例
    二分法原理
    二分法原理
    linux中BIND服务程序安全的加密传输TSIG机制
    linux系统中部署DNS从服务器
  • 原文地址:https://www.cnblogs.com/firstForEver/p/5487605.html
Copyright © 2011-2022 走看看