这个脚本使我写的第一个真正有用的脚本,折腾了半天。主要可以实现的功能就是:
1、得到一个路径下的所有文件夹名。
2、在得到子路径下的文件夹名。
3、得到该路径下的所有文件名。
4、在制定位置创建文件。
5、将指定路径下的二进制文件执行的结果写入指定路径下的文件中。
#!/bin/bash
dir=$(ls -l /home/lion/yuedata/RGB |awk '/^d/ {print $NF}')
for i in $dir
do
path1='/home/lion/yuedata/RGB/'"${i}"
echo $path1
mdir1='/home/lion/yuedata/outRGB/'"${i}"
echo $mdir1
mkdir $mdir1
dir1=$(ls -l $path1 |awk '/^d/ {print $NF}')
for j in $dir1
do
mdir2='/home/lion/yuedata/outRGB/'"${i}/""${j}"
echo $mdir2
mkdir $mdir2
path2="${path1}/""${j}"
echo $path2
cd $path2
for filename in `ls`
do
echo $filename
createfile="touch /home/lion/yuedata/outRGB/${i}/${filename}.txt"
$createfile
cmd="eval /home/lion/yuelib/dense_trajectory_release_v1.2/release/DenseTrack ${path1}/${filename} -L 30 >> /home/lion/yuedata/outRGB/${i}/${filename}.txt"
$cmd
done
done
done
带有计时功能的版本:
#!/bin/bash
dir=$(ls -l /home/lion/yuedata/RGB |awk '/^d/ {print $NF}')
for i in $dir
do
path1='/home/lion/yuedata/RGB/'"${i}"
echo $path1
mdir1='/home/lion/yuedata/outRGB/'"${i}"
echo $mdir1
mkdir $mdir1
dir1=$(ls -l $path1 |awk '/^d/ {print $NF}')
for j in $dir1
do
mdir2='/home/lion/yuedata/outRGB/'"${i}/""${j}"
echo $mdir2
mkdir $mdir2
path2="${path1}/""${j}"
echo $path2
cd $path2
for filename in `ls`
do
echo $filename
createfile="touch /home/lion/yuedata/outRGB/${i}/${filename}.txt"
$createfile
cmd="eval /home/lion/yuelib/dense_trajectory_release_v1.2/release/DenseTrack ${path1}/${filename} -L 30 >> /home/lion/yuedata/outRGB/${i}/${filename}.txt"
start=`date +"%Y-%m-%d %H:%M:%S"`
$cmd
end=`date +"%Y-%m-%d %H:%M:%S"`
Sys_start=`date -d "$start" +%s`
Sys_end=`date -d "$end" +%s`
echo 'time per avi: '$(($Sys_end-$Sys_start))' s'
done
done
done