shell解压压缩包,求包下所有文本的录音时长总和

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell解压压缩包,求包下所有文本的录音时长总和相关的知识,希望对你有一定的参考价值。

#!/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 ls $1
? ? 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(){

? ? 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解压压缩包,求包下所有文本的录音时长总和的主要内容,如果未能解决你的问题,请参考以下文章

怎么用linux中的grep去搜索压缩包下的文件?

linux里怎么安装zip压缩包

如何使用shell调用Winrar压缩及解压缩文件

makeself创建自解压缩安装包

java如何读取压缩包中的文本文件

压缩软件哪个好