I have many files in a folder:
yyyymmdd_hhmmss.mp4
yyyymmdd_hhmmss_suffix1.mp4
yyyymmdd_hhmmss_suffix1_suffix2.mp4
The following filename formats are also possible (rarely):
yyyymmdd_hhmmss_$$$.mp4
yyyymmdd_hhmmss_$$$_suffix1.mp4
yyyymmdd_hhmmss_$$$_suffix1_suffix2.mp4
yyyymmdd_hhmmss_$$.mp4
yyyymmdd_hhmmss_$$_suffix1.mp4
yyyymmdd_hhmmss_$$_suffix1_suffix2.mp4
yyyymmdd_hhmmss_$.mp4
yyyymmdd_hhmmss_$_suffix1.mp4
yyyymmdd_hhmmss_$_suffix1_suffix2.mp4
where $ is a number 0-9
I am trying to catch "yyyymmdd_hhmmss" and use it as an argument. This is what I do when only one suffix presented:
for file in "$@"; do
file_nosuffix="${file%*_suffix1.mp4}.mp4"
echo "$file and $file_nosuffix"
done
But I get lost when all sorts of the filename formats mentioned above are presented. Ideally I would like to stick to the current pattern:
for file in "$@"; do
#catch "yyyymmdd_hhmmss"
#do something on files yyyymmdd_hhmmss.mp4
#do something else on files yyyymmdd_hhmmss_suffix1.mp4
#etc.
done
Is that possible?
for fileiterates over"$@"by default.yyyymmdd_hhmmssdoesn't match something that expects all those characters to be digits, for example, which is presumably your actual format.