shell解壓壓縮包,求包下所有文本的錄音時長總和
阿新 • • 發佈:2018-01-26
ase tdi tgz array net then arpa fun ucc #!/bin/bash
#from為壓縮包批次所在目錄
#basetarpath 為統計每批次總時長
from=$1
basetarpath=$2
suffix="tgz"
todir=$basetarpath
outdir=$basetarpath/home/iflytek/out
if [ ! -d? $from ]; then
exit
fi
if [ ! -d $basetarpath ];then
mkdir -p $basetarpath
fi
function jieya(){
? ? for element in
? ? do??
? ? ? ? dir_or_file=$1"/"$element
? ? ? ? if [ -d $dir_or_file ]
? ? ? ? then?
? ? ? ? ? ? jieya $dir_or_file
? ? ? ? else
? ? ? ? ? ? if [ "${dir_or_file##*.}" = "tgz" ]; then
tar -zxvf $dir_or_file -C $todir?
? ? ? ? ? ? fi?
fi??
? ? done
? ? echo " tar success "??
}
function taltoltime(){
cat $1 | while read myline
do
? ? ? ? var=$( cat $myline | grep "time" )
? ? ? ? if [[ $var != "" ]]; then
var=${var//"time:"/|}
? ? ? ? ? ? ? ? array=(${var//|/ })
? ? ? ? ? ? ? ? for var2 in ${array[@]}
? ? ? ? ? ? ? ? do
? ? ? ? ? ? ? ? ? ? ? ? arraylr=(${var2//,/ })
voicetime=$(($voicetime+$((${arraylr[1]}-${arraylr[0]}))))
? ? ? ? ? ? ? ? ? ? ? ? echo $voicetime? ?> $3
? ? ? ? ? ? ? ? done
? ? ? ? fi
done
}
function iterate(){
#from為壓縮包批次所在目錄
#basetarpath 為統計每批次總時長
from=$1
basetarpath=$2
suffix="tgz"
todir=$basetarpath
outdir=$basetarpath/home/iflytek/out
if [ ! -d? $from ]; then
exit
fi
if [ ! -d $basetarpath ];then
mkdir -p $basetarpath
fi
function jieya(){
? ? for element in
ls $1
? ? do??
? ? ? ? dir_or_file=$1"/"$element
? ? ? ? then?
? ? ? ? ? ? jieya $dir_or_file
? ? ? ? else
? ? ? ? ? ? if [ "${dir_or_file##*.}" = "tgz" ]; then
tar -zxvf $dir_or_file -C $todir?
? ? ? ? ? ? fi?
fi??
? ? done
? ? echo " tar success "??
}
function taltoltime(){
cat $1 | while read myline
? ? ? ? var=$( cat $myline | grep "time" )
? ? ? ? if [[ $var != "" ]]; then
var=${var//"time:"/|}
? ? ? ? ? ? ? ? array=(${var//|/ })
? ? ? ? ? ? ? ? for var2 in ${array[@]}
? ? ? ? ? ? ? ? do
? ? ? ? ? ? ? ? ? ? ? ? arraylr=(${var2//,/ })
voicetime=$(($voicetime+$((${arraylr[1]}-${arraylr[0]}))))
? ? ? ? ? ? ? ? done
? ? ? ? fi
done
}
function iterate(){
? ? for element in $outdir/? ? ??
? ? do
cd $outdir
echo 0 >? ${element##/}.txt
for onetxt in $element/
do
voicetime=$(cat ${element##/}.txt)
taltoltime $onetxt $voicetime ${element##*/}.txt
done
? ? done
? ? echo "success"
}
jieya $from
iterate
shell解壓壓縮包,求包下所有文本的錄音時長總和