我正在尝试在 Ubuntu 的终端中使用重命名命令将字符串附加到某些 avi 文件名的开头,如下所示。
rename -n 's/(\w)\.avi$/String_to_add__$1\.avi/' *.avi
所以我期待以下内容:
String_to_add_MyMovie.avi
问题是,当我运行命令时,它会将字符串附加到文件名的末尾,所以我得到以下结果:
MyMovie_String_to_add_.avi
我不确定是我的 perlexpr 语法有误还是其他原因。感谢任何见解。
更新:
感谢建议,我尝试了alno和plundra的建议,做了如下修改:
rename -n 's/(\w+)\.avi$/String_to_add__$1\.avi/' *.avi
但是现在文件得到了在名称中间插入的字符串,如下所示:
My_String_to_add_Movie
不过我很抱歉,我忘记提到标题前面有 3 个数值,所以文件名命名法是 {3 numbers}-My_Movie.avi
例如 001-我的电影.avi
。但我认为这不会有什么不同,因为我假设 \w+
匹配字母数字字符,“-”可能是问题所在吗?
还没有尝试过 Christian 的方法,我希望能够使用重命名命令,或者至少在我尝试其他方法之前了解它为什么不起作用。
最佳答案
我不认为 rename -n 是标准的。你可以这样做:
for i in *.avi; do mv $i String_to_add_$i; done
关于Linux 重命名功能未正确使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4510533/