zoukankan      html  css  js  c++  java
  • 自定义取不同产品的日志

    #!/bin/sh
    ####    根据用户需要随机取指定月份的随机音频和对应日志
    ##    记录
    ##    2018.08.24 增加获取转写结果功能
    
    ####    清空已提取的日志和音频    ####
    home_dir=`pwd`
    rm -rf log.zip
    rm -rf aud.zip
    
    ####    自定义查找的产品, 年月,不能早于2015年    ####
    function zidingyi(){
    echo "which do you want to check ~"
    select i in ASR IST
    do    
        if [[ $i != ASR ]] && [[ $i != IST ]];then
            echo "wrong choice! please choose again~"
        continue
        fi
    break
    done
    echo -n "please input year and month you want to check~[201805 or 201712] : "
    read yea_mon
    echo "the date you input is :"$yea_mon
    mon=${yea_mon:4:2}
    yea=${yea_mon:0:4}
    
    ####    要求年份必须大于2015年    ####
    if [[ $yea_mon"QAZ" == QAZ || $yea -le 2015  || ${#yea_mon} -ne 6 ]];then
        echo "the date you entered is illegal,please check~"
        exit 
    fi
    
    ####    对月份进行处理    ####其实1~9是多余的####
    case $mon in 
    1|01 )    Month=01Jan ;;
    2|02 )    Month=02Feb ;;
    3|03 )    Month=03Mar ;;
    4|04 )    Month=04April ;;
    5|05 )    Month=05May ;;
    6|06 )    Month=06June ;;
    7|07 )    Month=07July ;;
    8|08 )    Month=08Aug ;;
    9|09 )    Month=09Sept ;;
    10 )    Month=10Oct ;;
    11 )    Month=11Nov ;;
    12 )    Month=12Dec ;;
    *)
        echo "the month you entered is illegal,please check~"
        exit
    esac
    
    ####    根据产品初始化查找的目录及音频和日志格式    ####
    if [ $i = ASR ];then
            file_dir=`find / -name "$Month" |grep "$yea"|grep callLogs|grep lasrsvc|tail -1`
            audio=wav
            llog=log
    else [ $i == "IST" ]
            file_dir=`find / -name "$Month" |grep "$yea"|grep pc20onli|tail -1`
            audio=aud
            llog=LOG
    fi
    
    ####    如果查找不到则提示用户并退出    ####
    if [ $file_dir"wsx" == wsx ];then
        echo "there are no logs in "$yea""$mon"月。"
        exit
    fi
    echo "当前需要查询的目录为:"$file_dir
    }
    
    
    ####    查找最新的一条日志    ####
    function zuixinrizhi(){
    rm -rf tmp.txt
    if [ $i == ASR ]; then
        audio_file=`ls -RF $file_dir |tail -10|grep "$audio"|tail -1`
        find "$file_dir" -name "$audio_file" -exec ls -tr {} ;|tail -1|awk -F 'ISR-' '{print $1}' > tmp.txt
        aud=`cat tmp.txt`
    else
        audio_file=`ls -RF $file_dir |tail -10|grep "$audio"|tail -1`
        find "$file_dir" -name "$audio_file" -exec ls -tr {} ;|tail -1|awk -F 'ATS-' '{print $1}' > tmp.txt
        aud=`cat tmp.txt`
    fi
    }
    
    
    ####    进入日志月份文件夹,并随机取音频记录    ####
    function qusuijiyinpin(){
    if [ $i == ASR ]; then
        cd $aud/../../
    else
        cd $aud/../../../
    fi
    
    rm -rf name.txt
    echo "finding audio~ please wait a moment~"
    
    ####    随机取月份内音频    #### 
    if [ $i = ASR ]; then
         ####    由于随机取值时间较长,打印随机取值次数    ####
        find -size +5k -name ISR-0[1,2,3]-3[1,3,5,7]-*"$audio" >> aud_dir.txt
        echo "Get random values 1 times ~"
        find -size +5k -name ISR-1[7,8,9]-4[2,4,6,8]-*"$audio" >> aud_dir.txt
        echo "Get random values 2 times ~"
        find -size +5k -name ISR-2[1,2,3]-5[3,7,4,9]-*"$audio" >> aud_dir.txt
        echo "Get random values 3 times ~"
        find -size +5k -name ISR-3[4,5,6]-2[1,3,5,7]-*"$audio" >> aud_dir.txt
        echo "Get random values 4 times ~"
        find -size +5k -name ISR-4[4,5,6]-3[2,4,6,8]-*"$audio" >> aud_dir.txt
        echo "Get random values 5 times ~"
        find -size +5k -name ISR-5[4,5,6]-4[3,5,9,6]-*"$audio" >> aud_dir.txt
        echo "Get random values 6 times ~"
        find -size +5k -name ISR-0[7,8,9]-1[0,1,2,3]-*"$audio" >> aud_dir.txt
        echo "Get random values 7 times ~"
        find -size +5k -name ISR-1[1,2,3]-3[0,1,2,3]-*"$audio" >> aud_dir.txt
        echo "Get random values 8 times ~"
        find -size +5k -name ISR-2[7,8]-5[0,1,2,3]-*"$audio" >> aud_dir.txt
        echo "Get random values 9 times ~"
        awk -F 'ISR-' '{print $2}' aud_dir.txt|awk -F '-utt' '{print $1}' >> name.txt
    else
        find -size +5k -name *"$Month"-0[1,2,3]-0[1,3,5,7]-*"$audio" >> aud_dir.txt
        echo "Get random values 1 times ~"
        find -size +5k -name *"$Month"-1[7,8,9]-0[2,4,6,8]-*"$audio" >> aud_dir.txt
        echo "Get random values 2 times ~"
        find -size +5k -name *"$Month"-2[1,2,3]-0[3,7,4,9]-*"$audio" >> aud_dir.txt
        echo "Get random values 3 times ~"
        find -size +5k -name *"$Month"-0[4,5,6]-1[1,3,5,7]-*"$audio" >> aud_dir.txt
        echo "Get random values 4 times ~"
        find -size +5k -name *"$Month"-1[4,5,6]-1[2,4,6,8]-*"$audio" >> aud_dir.txt
        echo "Get random values 5 times ~"
        find -size +5k -name *"$Month"-2[4,5,6]-1[3,5,9,6]-*"$audio" >> aud_dir.txt
        echo "Get random values 6 times ~"
        find -size +5k -name *"$Month"-0[7,8,9]-2[0,1,2,3]-*"$audio" >> aud_dir.txt
        echo "Get random values 7 times ~"
        find -size +5k -name *"$Month"-1[1,2,3]-2[0,1,2,3]-*"$audio" >> aud_dir.txt
        echo "Get random values 8 times ~"
        find -size +5k -name *"$Month"-2[7,8]-2[0,1,2,3]-*"$audio" >> aud_dir.txt
        echo "Get random values 9 times ~"
        awk -F 'ATS-201' '{print $2}' aud_dir.txt|awk -F 'raw-utt' '{print $1}' >> name.txt
    fi
    
    result_no=`awk 'END{print NR}' name.txt`
    
    ####    判断当前日志条数是否大于所需,若大于则删除,若小于则提醒用户并继续执行    ####
    if [ $result_no -ge $num ]
    then
        let "del = $num + 1"
        sed -i ''$del',$d' name.txt
        echo "data pick fineshed~"
    elif [ $result_no == 0 ];then
        echo "found no random logs in "$mon"月,exit"
        exit
    else
        echo "There are no many logs in "$mon"月,continue~"
    fi
    }
    
    ####    提取音频名和日志名到临时文本文档    ####
    function baocunrizhiyinpin(){
    while read line 
    do
        find -name "*"$line"*"$audio >> aud.txt
        find -name "*"$line"*"$llog >> log.txt
    done < name.txt
    echo "zipping file"
    nb=`awk 'END{print NR}' name.txt`
    echo "there are $nb records have been found~"
    sleep 2s
    }
    
    ####    找音频和日志并压缩到aud.zip和log.zip中    ####
    function zipfile(){
    rm -rf name.txt
    cat aud.txt|while read line
    do
        zip -rq aud.zip $line
    done
    rm -rf aud.txt
    cat log.txt|while read line
    do
        zip -rq log.zip $line
    done
    echo -n "files have been zipped ,do you want to get recognize-result [yes or no] : "
    read getresult
    if [[ $getresult != yes ]] || [[ $getresult != no ]];then
        echo "wrong choice , exit getresult ~"
    fi
    }
    
    ####    提取音频及对应的日志    ####
    function getresult(){
        if [[ $getresult == yes ]];then
            mkdir zancun
            unzip -d zancun log.zip
            unzip -d zancun aud.zip
            #############    时间排序    ##############
            ls -tr `find -name *aud` > dir.txt
            echo `find -name *aud |wc -l`" audio has been found."
            sleep 1s
            echo  "Reading logs ,Please wait."
            sleep 1s
            #############    查找音频    ##############
            awk -F'ATS' '{print "ATS"$2}' dir.txt >> aud.txt
            i=1
            while read line
            do
            cat `find -name ${line%%utt01-.aud}"LOG"`|grep "QISRGetResultAsyn"|awk -F'quot;w&quot;:&quot;|&quot;,&quot' '{print "'$line' "  $2$4$6$8$10$12$14$16$18$20$22$24$26$28$30$32$34$36$38$40$42$44$46$48$50$52$54$56$58$60$62$64$66$68$70$72$74$76$78$80$82$84$86$88$90$92$94$96$98$100$102$104$106$108$110$112$114$116$118$120$122$124$126$128$130$132$134$136$138$140$142$144$146$148$150$152$154$156$158$160$162$164$166$168$170$172$174$176$178$180$182$184$186$188$190$192$194$196$198$200}' >> $home_dir/result.txt
            #echo $i" Reading:"${line%%utt01-.aud}"LOG"
            done < aud.txt
            rm  dir.txt
            rm  aud.txt
        fi
    }
    
    ####    执行子函数    ####
    zidingyi
    echo -n "Please input the number of logs you want get : "
    read num
    zuixinrizhi
    rm -rf tmp.txt
    qusuijiyinpin
    rm -rf aud_dir.txt
    echo "finding logs~ please wait a moment~"
    rm -rf aud.txt
    rm -rf log.txt
    baocunrizhiyinpin
    zipfile
    rm -rf log.txt
    mv *zip $home_dir
    
    
    echo "work has been finished,please check!"
  • 相关阅读:
    超参数调优
    集成学习(一)
    L1范数与L2范数
    HMM与CRF
    主题模型LDA
    性能评估指标
    java-jdk8下载及安装
    pandas相关性分析
    pandas小技巧
    Window—mysql下载及安装
  • 原文地址:https://www.cnblogs.com/wjlv/p/10582970.html
Copyright © 2011-2022 走看看