I have a bash script set that executes in a folder containing a number of photos and sequentially stitches them into panoramas based on the user input. Once the generation is completed, the output file is renamed to $x-pano.jpg and moved one folder higher.
My issue is the number prefix is based on the sequential execution of the script, meaning all files get renamed 1-pano.jpg to n-pano.jpg based on the number of panoramas generated during the script execution.
How can I modify the renaming process to look at the storage folder and get the largest $x? I want to increment that number by 1 and use as the file's numerical prefix. My current code is
//get the list of files in directory and sort in increasing order
$filelist=$(find ../ -maxdepth 1 -type f | sort -n)
//get number of files
$length=${filelist[@]}
//get the last file
$lastFile=${fileList[$((length-1))]}
will get a list of the files, sort in increasing order and get the last file from the list. This is where I get stuck. Using - as a delimiter, how can I capture the current value?
filelist=($(find ../ -maxdepth 1 -type f | sort -n)). To get the count:length=${#filelist[@]}. To get the last file:lastFile=${fileList[@]: -1}(note that an array subscript is already an arithmetic context so no$(())is necessary, but it's not until Bash 4.2 that you can use negative subscripts so you have to use a negative slice in earlier versions).