zoukankan      html  css  js  c++  java
  • linux shell 统计文件单词出现次数

    #! /bin/bash
    #文件名:word_freg.sh
    #用途:计算文件中单词的词频

    if [ $# -ne 1 ]
    then
    echo "Usage:$0 filename"
    exit -1
    fi

    filename=$1

    egrep -o "[[:alpha:]]+" $filename |   
    awk '{ count[$0]++ }
    END{ printf("%-14s%s ","word","count")
      for(ind in count){

        printf("%-14s%d ",ind,count[ind])

      }

    }'

    输出如下:

    [root@server script01]# bash word_freg.sh words.txt
    word    count
    used     1
    this       2
    counting    1

    说明:

    egrep -o "[[:alpha:]]+" $filename |   #用于输出单词,-o选项打印出自由换行符分割的匹配字符序列。

    :单词边界标记符

    [:alpha:]:表示字母的字符类。

    awk命令用来避免对每一个单词进行迭代。因为awk默认会逐行执行{}块中的语句,就不需要编写循环了。借助关联数组,当执行count[$0]++时,单词计数就增加。最后,在END{}语句块中通过迭代所有的单词,就能打印出单词及他们各自出现的次数。

  • 相关阅读:
    数据库
    Activity组件
    view,视图组件
    360导航板式
    service音乐播放
    service
    音乐播放器组件
    获取时间字符串
    JDK服务器存储
    数据库_黑名单练习_完善服务广播
  • 原文地址:https://www.cnblogs.com/xiangbing123/p/14975297.html
Copyright © 2011-2022 走看看