前日のスクリプトの修正
ニュース ファイナル 2010 1014 2305.0000.0002.ts
のような形式のファイル名が出てきたため.
#! /usr/bin/sh # # 動画ファイル名称の標準形を返します. # # ニュース ファイナル 2010 1014(木).ts # ################################## # 関数 # function error_mssg { echo "usage: $(basename $0) -i <input file> [-b] [-a]" 1>&2 } ################################## # 引数処理 # while getopts "i:ba" opt; do case $opt in \?) error_mssg; exit 1; break;; i) ipath="$OPTARG";; b) is_basename=1;; a) is_added=1;; esac done if [[ -z "$ipath" ]]; then error_mssg exit 1 fi ############################################### # ファイル名称の変則 # # 曜日が無い # ニュース ファイナル 2010 1014 2305 02.ts xp1="^\(.\+\) \([0-9]\{4\}\) \([0-9]\{4\}\)\( [0-9]\{4\} [0-9]\{2\}\.[^\.]\+\)$" # 曜日,時刻が無く,連番が付加されている # ニュース ファイナル 2010 1014 01.ts # ニュース ファイナル 2010 1014 001.ts xp2="^\(.\+\) \([0-9]\{4\}\) \([0-9]\{4\}\)\( [0-9]\{2,3\}\.[^\.]\+\)$" # 曜日が無く,編集用連番(.0000)が付加されている # ニュース ファイナル 2010 1014 2305.0002.0001.ts # ニュース ファイナル 2010 1014 2305.0002.ts # ニュース ファイナル 2010 1014 2305.ts xp3="^\(.\+\) \([0-9]\{4\}\) \([0-9]\{4\}\)\( \([0-9]\{4\}\.\)\+[^\.]\+\)$" # 標準ファイル形式に分別用の情報が付加されている # ニュース ファイナル 2010 1014(木) 0001.ts # ニュース ファイナル 2010 1014(木) 001.ts # ニュース ファイナル 2010 1014(木) 01.ts # ニュース ファイナル 2010 1014(木) 2305.0002.ts # ニュース ファイナル 2010 1014(木) 2305.ts # ニュース ファイナル 2010 1014(木).ts xp4="^\(.\+\) \([0-9]\{4\}\) \([0-9]\{4\}\)(.)\(.*\.[^\.]\+\)$" # 年月日のみ # ニュース ファイナル 2010 1014.ts xp5="^\(.\+\) \([0-9]\{4\}\) \([0-9]\{4\}\)\(\.[^\.]\+\)$" # 年月日と編集用連番(.0000)のみ # ニュース ファイナル 2010 1014.0000.0001.ts xp6="^\(.\+\) \([0-9]\{4\}\) \([0-9]\{4\}\)\(\.\([0-9]\{2,4\}\.\)\+[^\.]\+\)$" ###################################### # 処理 # for xp in "$xp1" "$xp2" "$xp3" "$xp4" "$xp5" "$xp6" do title=$(echo "$ipath"|sed -e "s/$xp/\1 \2 \3/") if [[ "$title" != "$ipath" ]]; then datestr=$(echo "$ipath"|sed -e "s/$xp/\2\3/") weekday=$(date -d $datestr "+%a") if [[ $is_added ]]; then added=$(echo "$ipath"|sed -e "s/$xp/\4/") added=$(echo "$added"|sed -e "s/^ +/ /") added=$(echo "$added"|sed -e "s/\.[^\.]\+$//") fi if [[ $is_basename ]]; then stdname="$title($weekday)$added" else stdname="$title($weekday)$added.${ipath##*.}" fi echo "$stdname" break fi done