#!/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":"|","' '{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!"
自定义取不同产品的日志
猜你喜欢
转载自www.cnblogs.com/wjlv/p/10582970.html
今日推荐
周排行