稳定性测试,需要对EPC或DIC任务进行翻倍操作,供后续使用

一、首先设定配置文件:

############     ↓↓↓↓↓↓↓↓↓   ###########
############     目录吧最后的/加上    ###########
############     ↑↑↑↑↑↑↑↑↑   ###########

##  电话信息文件中流水号字段名,以及分割的第几个位置(根据实际电话信息文件修)
epcVoiceId=voiceId
voiceId_lie=1
##  电话信息中录音字段名,以及分割的第几个位置(针对音频本地处理有效,FTP方式可不作配置,不改动音频位置)
epcVoiceUri=voiceUri
voiceUri_lie=5


#1. epc翻倍工具
#复制epc文件的源文件位置(.txt文件)
epcTaskFile=/iflytek/vie62/dmsTask/
#复制epc的录音位置,如果是远程ftp方式,此处位置可以不填
#epcTaskVoice=/iflytek/ahyd/dmsTask/
epcTaskVoice=
##  远程方式是否需要删除已下载且转写、转码完成的wav音频文件以节省服务器磁盘空间(默认false)
rmDownVoice=true
#复制后的epc文件生成位置,可以设置为epc的探测路径
epcCreateFile=/iflytek/vie62/DMS/
#复制epc文件数目
epcCreateNum=1
#监测epc还有多少文件未跑完,一般会设置成epc的batch目录,保证epc处理文件不为空(30s检查一次,可在doubleTask倒数第二行修改)
epcNonFile=/iflytek/vie62/EPCTask/batch/


#2. dic翻倍工具

#复制数据源的源文件存放位置(.new和.txt文件),此为dic复制的另一个方式,更改录音的时间,两种方式用一种即可,通常用这个
dicTaskFile=/data/iflytek/vie62/msm/dicTask/
#复制成功的文件存放位置(.new和.txt文件),此处可以改为dic的探测目录
dicCreateFile=/data/iflytek/vie62/msm/EPCTask/sender/
#对源文件翻倍多少倍
dicCreateNum=2
#翻倍的数据年份 
createYearNum=2018
#翻倍的数据月份
createMonthNum=12

二、翻倍的实现:

#!/bin/sh

######################
#  任务翻倍脚本
#  20190216
#  wjlv2@iflytek.com
######################

##  生成随机不重复值
function suijizhi(){
    
    ##  生成n个随机数到.tempp文件中
    rm -rf .tempp
    i=0
    while [ ${i} -lt $epcCreateNum ]
    do
        echo `tr -cd a-zA-Z0-9 </dev/urandom | head -c 12` >> .tempp
        let "i+=1"
    done
    echo '['$(date "+%Y-%m-%d %R:%S")'] 随机数已生成...'

}

##  初始化参数
function chushihua(){
    echo '['$(date "+%Y-%m-%d %R:%S")'] ########### 开始初始化 ###########'
    ##  当前脚本所在目录
    workdir=$(cd $(dirname $0); pwd)
    ##  删除fuzhi函数备份到当前目录的txt文件
    rm -rf *txt
    if [ -d bak ];then
        echo '['$(date "+%Y-%m-%d %R:%S")'] 生成原始电话信息文件备份目录 ...'
    else
        mkdir bak
    fi
    ##  取配置文件中的相关目录位置
    epcTaskFile=`cat ./config.ini|grep epcTaskFile|grep -v "#"|awk -F '=' '{print $2}'`
    epcTaskVoice=`cat ./config.ini|grep epcTaskVoice|grep -v "#"|awk -F '=' '{print $2}'`
    epcCreateFile=`cat ./config.ini|grep epcCreateFile|grep -v "#"|awk -F '=' '{print $2}'`
    epcCreateNum=`cat ./config.ini|grep epcCreateNum|grep -v "#"|awk -F '=' '{print $2}'`
    epcNonFile=`cat ./config.ini|grep epcNonFile|grep -v "#"|awk -F '=' '{print $2}'`
    epcVoiceId=`cat ./config.ini|grep epcVoiceId|grep -v "#"|awk -F '=' '{print $2}'`
    voiceId_lie=`cat ./config.ini|grep voiceId_lie|grep -v "#"|awk -F '=' '{print $2}'`
    epcVoiceUri=`cat ./config.ini|grep epcVoiceUri|grep -v "#"|awk -F '=' '{print $2}'`
    voiceUri_lie=`cat ./config.ini|grep voiceUri_lie|grep -v "#"|awk -F '=' '{print $2}'`
    rmDownVoice=`cat ./config.ini|grep rmDownVoice|grep -v "#"|awk -F '=' '{print $2}'`
    
:<<!    
    echo 'epcTaskFile : '$epcTaskFile
    echo 'epcTaskVoice : '$epcTaskVoice
    echo 'epcCreateFile :'$epcCreateFile
    echo 'epcCreateNum : '$epcCreateNum
    echo 'epcNonFile : '$epcNonFile
!
    ##  判断配置路径是否正确
    if [ `find $epcTaskFile -name 'DHXX_*_*_*txt'|wc -l` == 0  ];then
            echo '请检查epc待翻倍目录 '$epcTaskFile' 下是否有电话信息文件'
            exit 0
    elif [ $epcCreateNum -lt 1 ];then
            echo '翻倍数不能小于1!'
            exit 0
    else
        echo '['$(date "+%Y-%m-%d %R:%S")'] 已找到电话信息文件'    
        echo '['$(date "+%Y-%m-%d %R:%S")'] 每次复制文件数为:'$epcCreateNum
        
        if [ 'ABC'$epcTaskVoice == 'ABC' ];then
                    echo '['$(date "+%Y-%m-%d %R:%S")'] 音频位置:FTP'
                    ##  远程下载标志,默认为true
                    isHbyd=true
            ##  判断是否需要删除已下载且转码后的音频文件(节省服务器磁盘空间)
                    if [[ 'abab'$rmDownVoice == 'ababfalse' ]];then
                            echo '['$(date "+%Y-%m-%d %R:%S")'] 删除远程下载已转码音频:否'
                    else
                echo '['$(date "+%Y-%m-%d %R:%S")'] 删除远程下载已转码音频:是'
            fi
        else
            echo '['$(date "+%Y-%m-%d %R:%S")'] 音频位置:本地'
            isHbyd=false
            ## 删除临时目录
            rm -rf $epcCreateFile/voice_temp
            rm -rf .voice

            ##################如果找不到音频可能只是因为音频不是V3格式的,可以在这里修改查找的文件后缀名#######################
            if [ `find $epcTaskFile -name *V3|wc -l` == 0 ];then
                    echo '请检查epc待翻倍目录 '$epcTaskFile' 下是否有录音文件'
                    exit 0
                fi
            echo '['$(date "+%Y-%m-%d %R:%S")'] 已找到本地录音,开始复制到指定目录 ...'
            ##  找到音频目录下的音频,统一移动到指定目录
                    find ${epcTaskVoice} -name '*.V3' >> .voice
                    mkdir -p $epcCreateFile/voice_temp
                    cat .voice|while read voice_file
                    do
                            cp $voice_file $epcCreateFile/voice_temp/
                    done
            echo '['$(date "+%Y-%m-%d %R:%S")'] 本地录音复制完成~'
        fi

    fi
    echo '['$(date "+%Y-%m-%d %R:%S")'] ########### 初始化完成 ############'
}


## 找到电话信息文件,并且修改流水号
function fuzhi(){
    ##  查找电话信息文件(取最新的电话信息文件,作为基础模版复制)
    ## jcmb  基础模板,即电话信息文件DHXX_0_XXX.txt
    ## jcmc  基础名称,即电话信息文件夹
    jcmb=`find ${epcTaskFile} -name 'DHXX*txt' -exec ls -tr {} \;|head -1`
    echo '基础模板为:'$jcmb
    cp $jcmb ./
    
    ##  此处的line为.tempp文件的行
    jcmc=`ls DHXX*txt|awk -F'.txt|_' '{print $1"_"$2"_"$3"_'$line'_"$5}'`
    ##  备份基础模版电话信息
    echo '基础名称为:'$jcmc
    mv *txt bak

    ##  生成随机文件对应的目录,并拷贝基础模板到对应文件夹
:<<!
    mkdir -p $epcCreateFile/$jcmc
    cp $jcmb $epcCreateFile/$jcmc/$jcmc.txt
    touch $epcCreateFile/$jcmc/$jcmc.new
    file=$epcCreateFile/$jcmc/$jcmc.txt
!

    cp $jcmb $epcCreateFile/$jcmc.txt
    file=$epcCreateFile/$jcmc.txt
    echo '['$(date "+%Y-%m-%d %R:%S")'] 复制文件 :'$jcmc
    xiugailie    
    touch $epcCreateFile/$jcmc.new

}

##  修改电话信息文件的某列(这里修改的是流水号voiceid)
function xiugailie(){
    ## 删除临时文件
    rm -rf .voiceId_liee

    ##  此处的file为fuzhi中的文件
    cat $file|tail -n +2|awk -F'|' '{print $'$voiceId_lie'}' > .voiceId_liee
    cat .voiceId_liee|while read voiceId_liee_lie
    do
        sed -i 's/'$voiceId_liee_lie'/'${line:0:6}''$voiceId_liee_lie'/' $file
    done    
    echo  '['$(date "+%Y-%m-%d %R:%S")'] 已完成 :'$jcmc'.txt  流水号修改 ...'    
    ##  如果为本地方式则修改电话信息文件的音频目录为探测目录下的voice_temp目录
    if [ 'abab'$isHbyd == 'ababfalse' ];then
        rm -rf .voiceUri_liee
        ##  考虑到音频路径含有:或者/下方替换时sed命令出错,所以处理前就把所有的/替换为:
            sed -i 's/\//:/g' $file
        cat $file|tail -n +2|awk -F'|' '{print $'$voiceUri_lie'}' > .voiceUri_liee
        cat .voiceUri_liee|while read voiceUri_liee_lie
        do
            v3=`echo $voiceUri_liee_lie|awk -F':' '{print $NF}'`
            #sed -i 's/'$voiceUri_liee_lie'/..\/voice_temp\/'$v3'/' $file
            sed -i 's/'$voiceUri_liee_lie'/voice_temp\/'$v3'/' $file
        done    
        echo '['$(date "+%Y-%m-%d %R:%S")'] 已完成 :'$jcmc'.txt  音频路径修改 ...'
    fi

}


## epc是否处于空闲任务状态
function epcRun(){
    ##  查找epc任务处理的batch目录下是否有任务文件
    ##  name为epc待处理batch目录下的文件名(不带后缀)
    #rm -rf .nam_Txt
    nam_Txt=`find $epcNonFile -maxdepth 1 -name '*txt' -exec ls -tr {} \;|awk -F'/' '{print $NF}'|head -1|awk -F'.' '{print $1}'`
    #nam_Txt=`cat .nam_Txt`
    #echo $nam_Txt
    #rm -rf .nam_New
    nam_New=`find $epcNonFile -maxdepth 1 -name '*new' -exec ls -tr {} \;|awk -F'/' '{print $NF}'|head -1|awk -F'.' '{print $1}'`
    #nam_New=`cat .nam_New`
    #echo $nam_New
    
    ##  找到是否有存在txt和new文件
        epcRunFlag=false

    if  [[ -f $epcNonFile/$nam_Txt.txt  &&  -f $epcNonFile/$nam_Txt.new ]];then
        epcRunFlag=true
    elif [[ -f $epcNonFile/$nam_New.txt  &&  -f $epcNonFile/$nam_New.new ]];then
        epcRunFlag=true
    fi

}

##  若音频为FTP方式,是否需要删除已下载且转码转写完成的音频以节省磁盘空间
function rmDownVoice(){
    ##  判断是否需要删除转写完成后的音频文件
    if [[ 'abab'$rmDownVoice != 'ababfalse' ]];then
        #echo '['$(date "+%Y-%m-%d %R:%S")'] 检查 '$epcNonFile'/../trans/下是否有新生成转码后的音频'
        if [ `ls -F $epcNonFile/../trans/|wc -l` -gt 1 ];then
            cd $epcNonFile/../trans/
            echo "["$(date "+%Y-%m-%d %R:%S")"] $epcNonFile/../trans/"`ls -tr|head -1`" 已转写完成,正在删除 ..."
            rm -rf `ls -tr $epcNonFile/../trans/|head -1`
:<<!
            cd $epcNonFile/../voice/
            echo "["$(date "+%Y-%m-%d %R:%S")"] $epcNonFile/../voice/"`ls -tr|head -1`" 已转码完成,正在删除 ..."
            rm -rf `ls -tr $epcNonFile/../voice/|head -1`
            cd $workdir
!
        else
            echo "["$(date "+%Y-%m-%d %R:%S")"] 未找到转写完成的音频,暂时无需删除 ~"
        fi
        if [ `ls -F $epcNonFile/../voice/|wc -l` -gt 1 ];then
            cd $epcNonFile/../voice/
                        echo "["$(date "+%Y-%m-%d %R:%S")"] $epcNonFile/../voice/"`ls -tr|head -1`" 已转码完成,正在删除 ..."
                        rm -rf `ls -tr $epcNonFile/../voice/|head -1`
            cd $workdir
        else
                        echo "["$(date "+%Y-%m-%d %R:%S")"] 未找到转码完成的音频,暂时无需删除 ~"
                fi
    fi
}



##  main epc

epc(){
chushihua

while true
    do
    epcRun
    if [[ 'abab'$epcRunFlag == 'ababfalse' ]];then
        echo '['$(date "+%Y-%m-%d %R:%S")'] epc任务处理完成,开始任务复制~'
        suijizhi
        cat .tempp|while read line
        do
        fuzhi
        done
    else
        echo '['$(date "+%Y-%m-%d %R:%S")'] epc任务处理中,暂不复制~'
    fi
        ##  判断是否要删除转写完成的音频以节省空间
        rmDownVoice
        ############  此处可修改复制检测时间间隔,1分钟:1m  1秒钟:1s  尽量不要低于30s  ##############
    sleep 30s 
    done
}
########epc翻倍任务已经注释掉了#######

#epc


##  dic翻倍

dic_chushihua(){
    echo '['$(date "+%Y-%m-%d %R:%S")'] ########### 开始DIC翻倍初始化 ###########'
    workdir=$(cd $(dirname $0); pwd)
    dicTaskFile=`cat ./config.ini|grep dicTaskFile|grep -v "#"|awk -F '=' '{print $2}'`
    dicCreateFile=`cat ./config.ini|grep dicCreateFile|grep -v "#"|awk -F '=' '{print $2}'`
    dicCreateNum=`cat ./config.ini|grep dicCreateNum|grep -v "#"|awk -F '=' '{print $2}'`
    createYearNum=`cat ./config.ini|grep createYearNum|grep -v "#"|awk -F '=' '{print $2}'`
    createMonthNum=`cat ./config.ini|grep createMonthNum|grep -v "#"|awk -F '=' '{print $2}'`
    if [ `find $dicTaskFile -name 'dps*_*_*_*txt'|wc -l` == 0  ];then
                echo '请检查epc待翻倍目录 '$dicTaskFile' 下是否有电话信息文件'
                exit 0
        elif [ $dicCreateNum -lt 1 ];then
                echo '翻倍数不能小于1!'
                exit 0
        else
              #  echo '['$(date "+%Y-%m-%d %R:%S")'] 已找到待翻倍文件' 
                echo '['$(date "+%Y-%m-%d %R:%S")'] 每次复制文件数为:'$dicCreateNum
        fi
        echo '['$(date "+%Y-%m-%d %R:%S")'] ########### DIC初始化完成 ############'
}
function dic_suijizhi(){

        ##  生成n个随机数到.tempp文件中
        rm -rf .dic_tempp
        i=0
        while [ ${i} -lt $dicCreateNum ]
        do
                echo `tr -cd a-zA-Z0-9 </dev/urandom | head -c 12` >> .dic_tempp
                let "i+=1"
        done
        echo '['$(date "+%Y-%m-%d %R:%S")'] 随机数已生成...'

}
##  main dic

dic(){
dic_chushihua
while true
        do
    dic_suijizhi
        cat .dic_tempp|while read sjz
        do
            rm -rf dps*txt
            jcmb=`find ${dicTaskFile} -maxdepth 1 -name 'dps*_*_*_*txt' -exec ls -tr {} \;|head -1`
            cp `find $dicTaskFile -maxdepth 1 -name 'dps*_*_*_*txt'|head -1` ./
            jcmc=`ls dps*txt|awk -F'.txt|_' '{print $1"_"$2"_"$3"_'$sjz'_"$5"_"$6}'`
            mv dps*txt $jcmc.txt
            echo '['$(date "+%Y-%m-%d %R:%S")'] 基础名称为:'$jcmc
            timee=`cat $jcmc.txt |awk -F'timeFormat":"|","seatId' '{print $2}'|awk -F'-' '{print $1"-"$2}'`
            batchidd=`cat $jcmc.txt |awk -F'batchId":"|","dataSourc' '{print $2}'`
            echo '下面开始替换...'
            sed -i 's/'$batchidd'/'$sjz'/g' $jcmc.txt &
            echo '['$(date "+%Y-%m-%d %R:%S")'] 批次号修改完成...'
        ###       如果不修改年月 注释下方一行即可,配置文件config.ini不用修改 ########
#            sed -i 's/'$timee'/'$createYearNum'-'$createMonthNum'/g' $jcmc.txt
#            echo '['$(date "+%Y-%m-%d %R:%S")'] 来电时间修改完成...'
            sed -i 's/voiceId":"/voiceId":"123456123456/g' $jcmc.txt &
            wait
            sed -i 's/123456123456/'${sjz:0:6}'/g' $jcmc.txt
            echo '['$(date "+%Y-%m-%d %R:%S")'] 流水号修改完成...'
            mv $jcmc.txt $dicCreateFile
            touch $dicCreateFile/$jcmc.new
            echo '['$(date "+%Y-%m-%d %R:%S")'] 文件复制结束...'
        done
    ############  此处可修改复制检测时间间隔,1分钟:1m  1秒钟:1s  尽量不要低于30s  ##############
        sleep 30s
        done
}
dic

翻倍的思路(以epc翻倍为例):

1、初始化读取配置文件的值,

  (1)检查是否有固定格式待翻倍的任务文件以及翻倍的倍数

if [ `find $epcTaskFile -name 'DHXX_*_*_*txt'|wc -l` == 0  ];then
            echo '请检查epc待翻倍目录 '$epcTaskFile' 下是否有电话信息文件'
            exit 0
    elif [ $epcCreateNum -lt 1 ];then
            echo '翻倍数不能小于1!'
            exit 0

  (2)判断录音文件处理方式是远程还是本地,并初始化处理方式的值。如果是远程,那么下载到本地是否需要删除本地已处理完成的文件

if [ 'ABC'$epcTaskVoice == 'ABC' ];then
                    echo '['$(date "+%Y-%m-%d %R:%S")'] 音频位置:FTP'
                    ##  远程下载标志,默认为true
                    isHbyd=true
            ##  判断是否需要删除已下载且转码后的音频文件(节省服务器磁盘空间)
                    if [[ 'abab'$rmDownVoice == 'ababfalse' ]];then
                            echo '['$(date "+%Y-%m-%d %R:%S")'] 删除远程下载已转码音频:否'
                    else
                echo '['$(date "+%Y-%m-%d %R:%S")'] 删除远程下载已转码音频:是'
            fi
        else
            echo '['$(date "+%Y-%m-%d %R:%S")'] 音频位置:本地'
            isHbyd=false
            ## 删除临时目录
            rm -rf $epcCreateFile/voice_temp
            rm -rf .voice

  (3)如果是本地继续判断目录下是否有音频,并移动到统一的位置

if [ `find $epcTaskFile -name *V3|wc -l` == 0 ];then
                    echo '请检查epc待翻倍目录 '$epcTaskFile' 下是否有录音文件'
                    exit 0
                fi
            echo '['$(date "+%Y-%m-%d %R:%S")'] 已找到本地录音,开始复制到指定目录 ...'
            ##  找到音频目录下的音频,统一移动到指定目录
                    find ${epcTaskVoice} -name '*.V3' >> .voice
                    mkdir -p $epcCreateFile/voice_temp
                    cat .voice|while read voice_file
                    do
                            cp $voice_file $epcCreateFile/voice_temp/
                    done

  

2、根据读取的配置文件的翻倍数量,生成12位数字字母大小写的随机值suijizhi

function suijizhi(){
    
    ##  生成n个随机数到.tempp文件中
    rm -rf .tempp
    i=0
    while [ ${i} -lt $epcCreateNum ]
    do
        echo `tr -cd a-zA-Z0-9 </dev/urandom | head -c 12` >> .tempp
        let "i+=1"
    done
    echo '['$(date "+%Y-%m-%d %R:%S")'] 随机数已生成...'

}

3、判断epc的运行状态

function epcRun(){
    ##  查找epc任务处理的batch目录下是否有任务文件
    ##  name为epc待处理batch目录下的文件名(不带后缀)
    #rm -rf .nam_Txt
    nam_Txt=`find $epcNonFile -maxdepth 1 -name '*txt' -exec ls -tr {} \;|awk -F'/' '{print $NF}'|head -1|awk -F'.' '{print $1}'`
    #nam_Txt=`cat .nam_Txt`
    #echo $nam_Txt
    #rm -rf .nam_New
    nam_New=`find $epcNonFile -maxdepth 1 -name '*new' -exec ls -tr {} \;|awk -F'/' '{print $NF}'|head -1|awk -F'.' '{print $1}'`
    #nam_New=`cat .nam_New`
    #echo $nam_New
    
    ##  找到是否有存在txt和new文件
        epcRunFlag=false

    if  [[ -f $epcNonFile/$nam_Txt.txt  &&  -f $epcNonFile/$nam_Txt.new ]];then
        epcRunFlag=true
    elif [[ -f $epcNonFile/$nam_New.txt  &&  -f $epcNonFile/$nam_New.new ]];then
        epcRunFlag=true
    fi

}

4、执行复制

function fuzhi(){
    ##  查找电话信息文件(取最新的电话信息文件,作为基础模版复制)
    ## jcmb  基础模板,即电话信息文件DHXX_0_XXX.txt
    ## jcmc  基础名称,即电话信息文件夹
    jcmb=`find ${epcTaskFile} -name 'DHXX*txt' -exec ls -tr {} \;|head -1`
    echo '基础模板为:'$jcmb
    cp $jcmb ./
    
    ##  此处的line为.tempp文件的行
    jcmc=`ls DHXX*txt|awk -F'.txt|_' '{print $1"_"$2"_"$3"_'$line'_"$5}'`
    ##  备份基础模版电话信息
    echo '基础名称为:'$jcmc
    mv *txt bak

    ##  生成随机文件对应的目录,并拷贝基础模板到对应文件夹
:<<!
    mkdir -p $epcCreateFile/$jcmc
    cp $jcmb $epcCreateFile/$jcmc/$jcmc.txt
    touch $epcCreateFile/$jcmc/$jcmc.new
    file=$epcCreateFile/$jcmc/$jcmc.txt
!

    cp $jcmb $epcCreateFile/$jcmc.txt
    file=$epcCreateFile/$jcmc.txt
    echo '['$(date "+%Y-%m-%d %R:%S")'] 复制文件 :'$jcmc
    xiugailie    
    touch $epcCreateFile/$jcmc.new

}

5、复制需要修改列内容,修改的内容有voiceId和voiceUrl

function xiugailie(){
    ## 删除临时文件
    rm -rf .voiceId_liee

    ##  此处的file为fuzhi中的文件
    cat $file|tail -n +2|awk -F'|' '{print $'$voiceId_lie'}' > .voiceId_liee
    cat .voiceId_liee|while read voiceId_liee_lie
    do
        sed -i 's/'$voiceId_liee_lie'/'${line:0:6}''$voiceId_liee_lie'/' $file
    done    
    echo  '['$(date "+%Y-%m-%d %R:%S")'] 已完成 :'$jcmc'.txt  流水号修改 ...'    
    ##  如果为本地方式则修改电话信息文件的音频目录为探测目录下的voice_temp目录
    if [ 'abab'$isHbyd == 'ababfalse' ];then
        rm -rf .voiceUri_liee
        ##  考虑到音频路径含有:或者/下方替换时sed命令出错,所以处理前就把所有的/替换为:
            sed -i 's/\//:/g' $file
        cat $file|tail -n +2|awk -F'|' '{print $'$voiceUri_lie'}' > .voiceUri_liee
        cat .voiceUri_liee|while read voiceUri_liee_lie
        do
            v3=`echo $voiceUri_liee_lie|awk -F':' '{print $NF}'`
            #sed -i 's/'$voiceUri_liee_lie'/..\/voice_temp\/'$v3'/' $file
            sed -i 's/'$voiceUri_liee_lie'/voice_temp\/'$v3'/' $file
        done    
        echo '['$(date "+%Y-%m-%d %R:%S")'] 已完成 :'$jcmc'.txt  音频路径修改 ...'
    fi

}

6、若是远程方式实现删除已处理完成的任务文件

function rmDownVoice(){
    ##  判断是否需要删除转写完成后的音频文件
    if [[ 'abab'$rmDownVoice != 'ababfalse' ]];then
        #echo '['$(date "+%Y-%m-%d %R:%S")'] 检查 '$epcNonFile'/../trans/下是否有新生成转码后的音频'
        if [ `ls -F $epcNonFile/../trans/|wc -l` -gt 1 ];then
            cd $epcNonFile/../trans/
            echo "["$(date "+%Y-%m-%d %R:%S")"] $epcNonFile/../trans/"`ls -tr|head -1`" 已转写完成,正在删除 ..."
            rm -rf `ls -tr $epcNonFile/../trans/|head -1`
:<<!
            cd $epcNonFile/../voice/
            echo "["$(date "+%Y-%m-%d %R:%S")"] $epcNonFile/../voice/"`ls -tr|head -1`" 已转码完成,正在删除 ..."
            rm -rf `ls -tr $epcNonFile/../voice/|head -1`
            cd $workdir
!
        else
            echo "["$(date "+%Y-%m-%d %R:%S")"] 未找到转写完成的音频,暂时无需删除 ~"
        fi
        if [ `ls -F $epcNonFile/../voice/|wc -l` -gt 1 ];then
            cd $epcNonFile/../voice/
                        echo "["$(date "+%Y-%m-%d %R:%S")"] $epcNonFile/../voice/"`ls -tr|head -1`" 已转码完成,正在删除 ..."
                        rm -rf `ls -tr $epcNonFile/../voice/|head -1`
            cd $workdir
        else
                        echo "["$(date "+%Y-%m-%d %R:%S")"] 未找到转码完成的音频,暂时无需删除 ~"
                fi
    fi
}
原文地址:https://www.cnblogs.com/wjlv/p/10582822.html