#!/usr/bin/bash # --- # Given my normal naming scheme, creates a properly named folder, # moves the vtt into it and renames everything. # # Normally something like: # - - name [gigaohmbiological - ].vtt # - , - name [gigaohmbiological - ].vtt # # Need to change it to something like: # - () - name.vtt # --- files=() while (( "$#" )); do files+=("$1") echo Adding file: "$1" shift done for ((i = 0; i < ${#files[@]}; i++)); do suffix="" file="${files[$i]}" echo processing: $file base="${file%.*}" [[ "$base" =~ .*"fixed"$ ]] && base="${base%.*}" && suffix=".fixed" [[ "$base" =~ .*"joined"$ ]] && base="${base%.*}" && suffix=".joined" id="$(cut -d' ' -f1 <<< "$base")" date="$(echo $base | cut -d'[' -f2 | cut -d']' -f1 | cut -d' ' -f3)" stream="$(echo $base | cut -d' ' -f3- | cut -d'[' -f1)" # Strip unnecessary dettails. stream="${stream/"-- Brief "/""}" # Trim trailing spaces stream="${stream%"${stream##*[![:space:]]}"}" folder="${id} (${date}) - ${stream}" target="${folder}${suffix}.vtt" [ ! -d "${folder}" ] && mkdir -v "${folder}" mv -vi "${file}" "${folder}/${target}" echo # printf "\n base: $base \n date: $date \n id: $id \n stream: $stream \n" # printf " folder: $folder \n target: $target \n\n" done