text 根据电视节目名称重命名字幕文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了text 根据电视节目名称重命名字幕文件相关的知识,希望对你有一定的参考价值。

#!/bin/bash -eu
#
# Renames subtitles files according to tv shows names found in the current directory
# Accepted syntaxes for season/episode: s3e04, s03e04, 3x04 (case insensitive)
#

# switch into case insensitive
shopt -s nocasematch

# search subtitles
for f in *.{srt,ssa,sub}; do
  if [ ! -e "$f" ]; then
    continue
  fi
  if [[ "$f" =~ s([0-9]+)e([0-9]+) || "$f" =~ ([0-9]+)x([0-9]+) ]]; then

    let SEASON="10#${BASH_REMATCH[1]}" # eventually delete leading 0
    EPISODE=${BASH_REMATCH[2]}

    # search for a matching film
    for movie in *.{avi,mkv} ; do
      if [ ! -e "$movie" ]; then
        continue
      fi
      if [[ "$movie" =~ s0?${SEASON}e${EPISODE} || "$movie" =~ ${SEASON}x${EPISODE} ]]; then
        echo "Match for movie s${SEASON}e${EPISODE}"

        NEW_NAME=`echo "${movie%.*}".srt`
        if [ "$f" = "${NEW_NAME}" ]; then
          echo "  Already ok"
        elif [ -e "${NEW_NAME}" ]; then
          echo "  A file named '${NEW_NAME}' already exist, skipping"
        else
          mv "$f" "${NEW_NAME}"
          echo "  Renamed '$f' in '${NEW_NAME}'"
        fi
        break;
      fi

    done
  fi
done

# reswitch into case sensitive
shopt -u nocasematch

以上是关于text 根据电视节目名称重命名字幕文件的主要内容,如果未能解决你的问题,请参考以下文章

OSX:如何通过在父文件夹的名称前面加上某些文件来递归重命名它们?

如何根据相应文件的父文件夹名称使用 Grunt 重命名文件?

在 Maven 中 - 如何根据正在使用的配置文件的名称重命名输出 .war 文件

Copy攻城狮日志Node快速重命名文件,告别Potplay字幕困扰问题

Copy攻城狮日志Node快速重命名文件,告别Potplay字幕困扰问题

如何根据子文件夹复制文件和重命名