zoukankan      html  css  js  c++  java
  • Linux作业(三)-shell统计某文章中出现频率最高的N个单词并排序输出出现次数

    Linux课上的作业周三交,若有考虑不周到的地方,还请多多不吝赐教。

    shell处理文本相关的经常使用命令见此博客

     

     

    #

    #假设输入两个參数 则第一个为统计单词的个数。第二个为要统计的文章

    #假设输入一个參数 则默认统计单词的个数为10

    #

     

    详细思路:

    将各种符号用换行替换(tr命令)

    大写改小写(tr命令)

    排序、统计单词个数并除去反复 (sort和uniq)

    按出现次数的高低排序(sort)

    打印N个须要统计的单词

    #!/bin/bash
    if [ $# -ne 2 -a $# -ne 1 ] ;then
            echo "usage: `basename $0 ` [n] input file "
            echo
            exit
    fi
    
    if [ $# -eq 1 ];then
            I_TOP=10
            I_FILE=$1
    fi
    
    if [ $# -eq 2 ];then
            I_TOP=$1
            I_FILE=$2
    fi
    tr -sc "[A-Z][a-z]"  "[12*]"  < $I_FILE |  
    tr  "[A-Z]"  "[a-z]"  | 
    sort  | uniq -c |   
    sort  -k1 -n -r  |  
    head -$I_TOP | nl


     

  • 相关阅读:
    大小端模式
    深入理解c/c++ 内存对齐
    示波器使用
    C结构体
    51单片机内存问题
    S5PV210启动过程详解1
    程序中内存从哪里来
    再论typedef
    ARM体系结构总结
    MMU实验实验
  • 原文地址:https://www.cnblogs.com/gavanwanggw/p/6764500.html
Copyright © 2011-2022 走看看