Как исправить, если оператор всегда возвращает false при использовании regex - PullRequest
0 голосов
/ 19 октября 2019

После загрузки торрента я хочу переместить его в зависимости от того, является ли он фильмом или сериалом. Если это серия, имя содержит S или s, следующие за 2 числами. Например, S01.

Я пробовал простую команду if с регулярным выражением, но мой код всегда дает ложный результат.

if [[ "$1" =~ ([s|S][0-9][0-9]\w*)\b ]]; then
    mv to series folder command
else
    mv to movies folder command
fi

Не имеет значения, что я введу в параметр $ 1, если результат ifвсегда быть ложным.

1 Ответ

1 голос
/ 19 октября 2019

Ваше выражение соответствия неверно - чтобы соответствовать s или S, просто используйте [sS]

if [[ "$1" =~ ([sS][0-9][0-9]*) ]]; then
    echo "series"
else
    echo "movie"
fi

Выход:

$ bash del.sh s01
series
$ bash del.sh fff
movie
$ bash del.sh S02
series
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...