从前缀和后缀重命名文件

从前缀和后缀重命名文件

我有一系列媒体文件正在尝试批量重命名。

001 - 01x01 - mediaTitle1.avi
002 - 01x02 - mediaTitle2.avi
003 - 01x03 - mediaTitle3.avi

我想要的是输出:

Series Title S01 E01 - mediaTitle1.avi
Series Title S01 E02 - mediaTitle2.avi
Series Title S01 E03 - mediaTitle3.avi

我正在尝试这个:

for f in *01x*; do echo mv -v "$f" "Series Title S01 E{f#1}"; done

但它失败了。所以我想保留文件的结尾并替换每个文件的开头

答案1

您很接近,但忘记(?)进行$变量扩展,尝试:

for f in  *01x*; do mv -v -- "$f" 'Series Title S01 E'"${f#*01x}"; done

请注意目标文件中的单引号,因为文件名中存在空格。

答案2

cd /path/to/avidir; mkdir ../avidir2
pax -rwls '|.* - \(..\)x\(.. - \)|Series Title S\1 E\2|' *.avi ../avidir2

上面的命令将创建指向另一个目录中所有文件的硬链接。这使您能够在删除具有不需要的名称的文件之前验证所有更改是否令您满意。

相关内容