Aller au contenu

Regular Expression Matching (REMATCH)

http://molk.ch/tips/gnu/bash/rematch.html

#!/usr/bin/env bash

FILE="/Users/bruno/Downloads/Better.Call.Saul.S06E07.FRENCH.LD.AMZN.WEB-DL.x264-FRATERNiTY.mkv"

# Extension video file
DEST_EXT=mp4

filename=$(basename "$FILE")
filename=${filename%.*}

# Series: SxxEyy
REGEX="([sS]([0-9]{2,}|[X]{2,})[eE]([0-9]{2,}|[Y]{2,}))"


if [[ $filename =~ $REGEX ]]; then
    MATCH0="${BASH_REMATCH[0]}"
    echo "$MATCH0"              # S06E07

    MATCH1="${BASH_REMATCH[1]}"
    echo "$MATCH1"              # S06E07

    MATCH2="${BASH_REMATCH[2]}"
    echo "$MATCH2"              # 06

    MATCH3="${BASH_REMATCH[3]}"
    echo "$MATCH3"              # 07

    e=$(echo ${filename%$MATCH0*} | sed 's/\./\ /g' | xargs)
    echo "$e"                   # Better Call Saul

    new_name="$e - $MATCH0.$DEST_EXT"
    echo "$new_name"            # Better Call Saul - S06E07.

else
    echo "no match"
fi

Dernière mise à jour: November 9, 2023