I have a directory structure like bellow.
.
├── Course 1
│ ├── 1 - Introduction
│ │ ├── 01-First Video.mp4
│ │ ├── 02-Second Video.mp4
│ │ ├── 03-Third Video.mp4
│ ├── 2 - Chapter 1
│ │ ├── 05-Nth Video.mp4
│ │ ├── 06-Nth1 Video.mp4
│ │ └── 07-Nth2 Video.mp4
│ ├── 3 - Chapter 2
│ │ ├── 08-Nth Video.mp4
│ │ ├── 09-Nth1 Video.mp4
│ │ └── 10-Nth2 Video.mp4
│ ├── 4 - Analysis
│ │ ├── 11-Nth Video.mp4
│ │ ├── 12-Nth1 Video.mp4
│ │ └── 13-Nth2 Video.mp4
│ ├── 5 - Conclusion
│ │ ├── 14-Nth Video.mp4
│ │ ├── 15-Nth1 Video.mp4
│ │ └── 16-Nth2 Video.mp4
├── Course 2
│ ├── 1 - Introduction
│ │ ├── 01-First Video.mp4
│ │ ├── 02-Second Video.mp4
│ │ ├── 03-Third Video.mp4
│ ├── 2 - Chapter 1
│ │ ├── 05-Nth Video.mp4
│ │ ├── 06-Nth1 Video.mp4
│ │ └── 07-Nth2 Video.mp4
│ ├── 4 - Analysis
│ │ ├── 11-Nth Video.mp4
│ │ ├── 12-Nth1 Video.mp4
│ │ └── 13-Nth2 Video.mp4
│ ├── 5 - Conclusion
│ │ ├── 14-Nth Video.mp4
│ │ ├── 15-Nth1 Video.mp4
│ │ └── 16-Nth2 Video.mp4
├── Course 3
│ ├── 1 - Introduction
│ │ ├── 02-First Video.mp4
│ │ ├── 03-Third Video.mp4
│ ├── 2 - Chapter 1
│ │ ├── 05-Nth Video.mp4
│ │ └── 07-Nth2 Video.mp4
│ ├── 4 - Analysis
│ │ ├── 11-Nth Video.mp4
│ │ ├── 12-Nth1 Video.mp4
│ ├── 5 - Conclusion
│ │ ├── 14-Nth Video.mp4
│ │ ├── 15-Nth1 Video.mp4
│ │ └── 16-Nth2 Video.mp4
I want to find if any files are missing in the directories.
The code that i am using to solve this problem is:
#!/usr/bin/env bash
previousname="Placeholder"
nextfilenumber=1
find . -type f -name "*.mp4" | sort --version-sort | while read -r line ; do
coursename=$(echo $line | cut -d/ -f2)
if [[ "$previousname" != "$coursename" ]]; then
nextfilenumber=2
previousname=$coursename
else
filename=${line##*/}
# https://stackoverflow.com/a/24777667/1772898
filenumber=$((10#${filename%%-*}))
nextfilenumber="$((nextfilenumber+1))"
temp="$((filenumber+1))"
if [[ $temp -ne $nextfilenumber ]]; then
echo "File(s) Before \"$coursename\"\'s \"$filename\""
nextfilenumber="$((nextfilenumber+1))"
fi
fi
done
How can I make this code better?