#!/bin/sh ###### # Script om bestandsnamen van opnames te gaan aanpassen ## #Geef wat feedback in de console; toon waar je mee bezig bent #Uncomment wanneer je de terminal output wil zien #set -x #####Variabelen die we gebruiken startdate=$(date +"%Y%m%d-%H%M") dir_in=/media/hdd/movie_tmp dir_out=/media/hdd/movie_out logdir=/media/hdd/renamelogs rename_script_log=$logdir/rename_$startdate".log" filelist=$logdir/filelist_$startdate.log filelist2=$logdir/filelist_$startdate"_2".csv #####Functies fn_check_inputdir() { if [ ! -d $dir_in ] then echo "Input dir bestaat niet; script wordt afgebroken - error 6" >> $rename_script_log exit 6 fi } fn_check_outputdir() { if [ ! -d $dir_out ] then echo "Output dir bestaat niet; script wordt afgebroken - error 7" >> $rename_script_log exit 7 fi } fn_check_logdir() { if [ ! -d $logdir ] then mkdir $logdir fi } fn_create_list_files() { #functie die de lijst maakt van bestanden aanwezig in de input dir ($dir_in); en die in een logbestand wegschrijft #Hiervoor wordt het find commando gebruikt # '! -mtime -1' zorgt er voor dat bestanden die de laatste minuut zijn aangepast niet mee in del ijst terecht komen # '! -name ".vdirinfo*" zal er voor zorgen dat bestanden die beginnen met '.vdirinfo' uitgesloten worden en niet mee in de lijst terecht komen # het stukje sed zal er voor zorgen dat de naam van het bestand weggeschreven wordt zonder './' in het begin cd $dir_in find . -type f ! -mtime -1 ! -name ".vdirinfo*" | sed 's|./||' >> $filelist } fn_process_filelist() { #functie die doorheen de filelist loopt en de bestandnaam opbouwt + de filemove doet ## gewenste output formaat = eerst de naam, dan de datum, en dan de zender # progNAAM zal nog verder opgesplitst moeten worden => de naam en de extensie van het bestand # bij progEXT wordt er gekeken naar het aantal fields in de input. Indien er maar 2 zijn, zal hij enkel de laatste gebruiken voor de extensie (bv .ts); # anders gaat hij de 2de en 3de gebruiken while read Line do progDATUM=`echo $Line | awk -v FS=" - " ' { print $1 } '` progSERVICE=`echo $Line | awk -v FS=" - " ' { print $2 } '` progNAAM=`echo $Line | awk -v FS=" - " ' { print $3 } ' ` progNAAMBASE=`echo $progNAAM | awk -v FS="." ' { print $1 } '` #progEXT=`echo $progNAAM | awk -v FS="." ' { print $2"."$3 } '` #nog nakijken; variabel aantal extensies!! progEXT=`echo $progNAAM | awk -v FS="." ' { if (NF==2) {print $2} else if (NF==3) {print $2"."$3} } '` newFileNAAM=$progNAAMBASE" - "$progDATUM" - "$progSERVICE"."$progEXT echo $Line";""$newFileNAAM" >> $filelist2 echo "> Move van $dir_in/$Line naar $dir_out/$newFileNAAM"| tee -a $rename_script_log mv "$dir_in/$Line" "$dir_out/$newFileNAAM" | tee -a $rename_script_log echo "--> Move van $dir_in/$Line naar $dir_out/$newFileNAAM voltooid"| tee -a $rename_script_log done < $filelist echo "## $filelist is nu verwerkt" | tee -a $rename_script_log } ##Start verwerking door oproepen functies ###Check logdir fn_check_logdir ###Check input en output dirs fn_check_inputdir fn_check_outputdir ###maak lijst bestanden fn_create_list_files ###verwerking van de lijst fn_process_filelist ##Eventuele opkuis van logs/tijdelijke bestanden/... #rm $filelist ##The exit is near... exit 0