[kwlug-disc] Regular Expression to Match Movie Titles and Year and Ignore the rest.

William Park opengeometry at yahoo.ca
Sun Jan 5 18:32:48 EST 2025


On 2025-01-05 05:01, John Driezen wrote:
> for moviefile in "$@"
> do

If reading from command arguments, then you can just do
     for moviefile; do

>      echo $moviefile | while IFS=. read -a x; do

Better to quote the file, in case you have crazy filenames.
     echo "$moviefile" | ...

>           y=
>           skip=0
>           for i in "${x[@]}"; do
>              case $i in
>                   201[0-9]) y+=" ($i)" ;;
>                   [0-9]*p) y+="-$i" ; skip=1 ;;
>                   avi) y+=".$i" ;;
>                   mkv) y+=".$i" ;;
>                   mp4) y+=".$i" ;;
>                   srt) y+=".$i" ;;
>                   webp) y+=".$i" ;;

You can compact these 5 lines into one line.
     avi|mkv|mp4|srt|webp) y+=".$i" ;;

>                   *) if [[ skip -eq 0 ]]; then y+="${y:+ }$i"; fi ;;
>               esac
>           done
>           echo "Renaming $moviefile as $y"
>           #mv $moviefile "$y"
>      done
> done




More information about the kwlug-disc mailing list