要求:
视频软件会每天定时上传文件,列表文件名字已知,并且每个文件都会有三个不同后缀名,需要每天自动检测是否有缺少某个视频文件,以便补充文件。
例如:上传结果A.1、A.2、A.3、B.1、B.2、C.3
需要根据已知的文件列表去对比结果,然后提示缺少的文件B.3、C.1、C.2
已知条件:
1、文件列表:
[root@localhost ~]# cat /root/videolist
a
b
c
d
e
f
g
h
2、上传的结果
[root@localhost ~]# ll video
total 0
-rw-r--r--. 1 root root 0 Mar 17 10:34 a.1
-rw-r--r--. 1 root root 0 Mar 17 10:34 a.2
-rw-r--r--. 1 root root 0 Mar 17 10:34 a.3
-rw-r--r--. 1 root root 0 Mar 17 10:34 b.1
-rw-r--r--. 1 root root 0 Mar 17 10:34 b.2
-rw-r--r--. 1 root root 0 Mar 17 15:45 c.2
-rw-r--r--. 1 root root 0 Mar 17 10:34 c.3
-rw-r--r--. 1 root root 0 Mar 17 15:49 d.1
-rw-r--r--. 1 root root 0 Mar 17 15:49 d.3
-rw-r--r--. 1 root root 0 Mar 17 15:49 e.1
-rw-r--r--. 1 root root 0 Mar 17 15:49 f.2
-rw-r--r--. 1 root root 0 Mar 17 15:49 g.3
方法一:
1、脚本
[root@localhost ~]# cat video.sh
#!/bin/bash
videolist=`cat /root/videolist`
for video in $videolist
do
if [ -f /root/video/"$video".1 -a -f /root/video/"$video".2 -a -f /root/video/"$video".3 ];
then
echo "file YES $video"
elif [ -f /root/video/"$video".1 -a ! -f /root/video/"$video".2 -a -f /root/video/"$video".3 ];
then
echo "file lack $video.2"
elif [ -f /root/video/"$video".1 -a -f /root/video/"$video".2 -a ! -f /root/video/"$video".3 ];
then
echo "file lack $video.3"
elif [ -f /root/video/"$video".1 -a ! -f /root/video/"$video".2 -a ! -f /root/video/"$video".3 ];
then
echo "file lack $video.2 $video.3"
elif [ ! -f /root/video/"$video".1 -a -f /root/video/"$video".2 -a -f /root/video/"$video".3 ];
then
echo "file lack $video.1"
elif [ ! -f /root/video/"$video".1 -a -f /root/video/"$video".2 -a ! -f /root/video/"$video".3 ];
then
echo "file lack $video.1 $video.3"
elif [ ! -f /root/video/"$video".1 -a ! -f /root/video/"$video".2 -a -f /root/video/"$video".3 ];
then
echo "file lack $video.1 $video.2"
elif [ ! -f /root/video/"$video".1 -a ! -f /root/video/"$video".2 -a ! -f /root/video/"$video".3 ];
then
echo "file NO $video"
fi
done
2、脚本执行结果
[root@localhost ~]# ./video.sh
file YES a
file lack b.3
file lack c.1
file lack d.2
file lack e.2 e.3
file lack f.1 f.3
file lack g.1 g.2
file NO h
方法二:
1、脚本
[root@localhost ~]# cat if.sh
#!/bin/bash
videolist=`cat /root/videolist`
for video in $videolist
do
if [ ! -f /root/video/"$video".1 ];then
if [ ! -f /root/video/"$video".2 ];then
if [ ! -f /root/video/"$video".3 ];then
echo "file FULL NO $video"
else
echo "file NO $video.1 $video.2"
fi
elif [ ! -f /root/video/"$video".3 ];then
echo "file NO $video.1 $video.3"
else
echo "file NO $video.1"
fi
elif [ ! -f /root/video/"$video".2 ];then
if [ ! -f /root/video/"$video".3 ];then
echo "file NO $video.2 $video.3"
else
echo "file NO $video.2"
fi
elif [ ! -f /root/video/"$video".3 ];then
echo "file NO $video.3"
else
echo "file FULL YES $video"
fi
done
2、结果
[root@localhost ~]# ./if.sh
file YES a
file lack b.3
file lack c.1
file lack d.2
file lack e.2 e.3
file lack f.1 f.3
file lack g.1 g.2
file NO h