0

さて、XBMC からの *.nfo ファイルを含むフォルダーのセットを取得しました (ビデオや写真などの他のファイルの横に)。

*.nfo ファイル内の文字列でフォルダの名前を変更したい。このような *.nfo ファイルの関連コンテンツ:

...
    <title>Filmtitle</title>
...
    <year>2011</year>
...
    <director>Werner Herzog</director>
...

更新: これは、XBMC からの変更されていない元の .nfo ファイルです。

映画情報

find execとでいろいろ試してみましたが、grep実際に使えるものは何もありませんでした...

上記の例では、フォルダーの名前は「Filmtitel [2011, Werner Herzog]」である必要があります。

多分誰かが私を助けることができます!

4

1 に答える 1

1

次のスクリプトを試してください。各ファイルからタイトル、年、監督を抽出し、ディレクトリの名前を変更します。

find . -type f -name "*.nfo" -print0 | while IFS= read -r -d $'\0' file
do
    title="$(sed 's|.*<title>\(.*\)</title>.*|\1|g' $file)"
    year="$(sed 's|.*<year>\(.*\)</year>.*|\1|g' $file)"
    director="$(sed 's|.*<director>\(.*\)</director>.*|\1|g' $file)"

    dirName="${file%/*}"
    newDirName="${dirName%/*}/$title [$year, $director]"
    # mv "$dirName" "$newDirName"
    echo mv "$dirName" "$newDirName"
done

mv(出力されたコマンドが正しいことに満足している場合は、単にコマンドのコメントを外してください。)

于 2013-12-18T10:52:07.917 に答える