好吧,我得到了一组文件夹,每个文件夹都包含一个来自XBMC的*.nfo文件(除了其他文件,如视频和图片等)。
我想通过 *.nfo 文件中的字符串重命名文件夹。此类 *.nfo 文件的相关内容:
...
<title>Filmtitle</title>
...
<year>2011</year>
...
<director>Werner Herzog</director>
...
更新:这是一个来自XBMC的未修改的原始.nfo文件
电影.nfo
我用find exec
和grep
尝试了很多,但我并没有真正得到任何薄的可用......
在上面的示例中,文件夹的名称应为"Filmtitel [2011, Werner Herzog]"
也许有人可以帮助我!
请尝试以下脚本。它从每个文件中提取标题、年份和导演,然后重命名目录:
find . -type f -name "*.nfo" -print0 | while IFS= read -r -d $' ' 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
命令即可。