-1

正規表現パターンに基づいてファイル名を変更できる複数ファイルの名前変更ツールを使用しています。たとえば、次のようなファイル名があります。

Otrazenie.(01.serija.iz.12).2011.XviD.SATRip.RiperAM.avi
Otrazenie.(02.serija.iz.12).2011.XviD.SATRip.RiperAM.avi
Otrazenie.(03.serija.iz.12).2011.XviD.SATRip.RiperAM.avi

または、次のようにします。

Beauty.and.the.Beast.S01E01.LostFilm.TV.avi
Beauty.and.the.Beast.S01E02.LostFilm.TV.avi
Beauty.and.the.Beast.S01E03.LostFilm.TV.avi

ここでは、変更される文字列内に数字のみがあります (01,02,03...)

文字列からその数値だけを取得する正規表現を構築する方法は?

4

1 に答える 1

-1

単一のファイルに基づいて変化する一連の値を予測できるとは限りません。たとえば、24のテレビシリーズのシーズン2からエピソード番号を引き出すことを想像してみてください。ファイル名には3つの可能な系列値があります24_02_07.avi24_02_08.avi次のファイル名( )が表示されるまで、どの番号がシリーズ値であるかは明確ではありません。

これを考慮して、次のbashスクリプトを実行できます。最初に、現在のディレクトリのファイルの中で最も長い共通プレフィックスを見つけます。次に、プレフィックスに続く各ファイル名の番号を見つけます。

set -- *
files=$#

prefix=$1
while [ -n "$prefix" ]; do
  set -- $prefix*
  [ $# -eq $files ] && break
  prefix=${prefix%?}
done

ls | sed -e "s/$prefix\([0-9]*\).*/\1/g" | sort -nu

言語が言及されていなかったので、私たちはコマンドラインにいると思います。

プレフィックスは、ファイル名の中で最も長い共通のサブストリングを見つけるためのChrisFAJohnsonソリューションを使用して見つけられます。

于 2013-01-02T04:47:28.370 に答える