Bash:シリーズエピソードの名前を1x01*
パターンにまとめて変更するにはS01E01*
?
私が見つけたこの回答しかし、私の状況に合わせて修正する方法がわかりません。
答え1
Bashサブストリングは次のことができます。
for i in ?x??*
do
mv "$i" "S0${i:0:1}E${i:2:2}${i:4}"
done
答え2
1つの方法はコマンドを使用することですrename
。提案された名前の変更に満足したら削除してください-n
。
説明する:
s/
=交換(\d+)
= 1つ以上の数字と一致(シーズン)x
= "x"文字と一致(\d+)
= 1つ以上の数字と一致(エピソード)/
= 文字列の終わりを検索して文字列の先頭を置き換えます。S0
=テキスト「S0」を挿入$1
=前(シーズン)で最初に一致する数字を挿入します。E
= "E"文字を挿入します。$2
=前(エピソード)から2番目に一致する数字を挿入します。/
=文字列の末尾を置き換えます。
-
rename -n -e 's/(\d+)x(\d+)/S0$1E$2/' *
rename(Breaking_Bad_1x01.mkv, Breaking_Bad_S01E01.mkv)
rename(Shameless_3x05.mp4, Shameless_S03E05.mp4)
答え3
一つずつ進めることができます。
for f in 1x01*; do
n=`echo $f | sed 's/^1x01/S01E01/'`
mv $f $n
done