我必须用这个结构重命名一堆文件(这是一个意甲):SSEE_SerieName_Episode.Name.With.Dots_some_variables_qualities.mkv
党卫军是03年的季号,EE集的号码是08年(前导为零)。Plex不认识它因为它的名字很烂..。所以我想把它重命名为: sSSeEE_SerieName_Episode.Name.With.Dots.mkv
发布于 2021-04-01 08:17:45
假设:
Episode.Name.With.Dots子字符串不包含下划线字符。_[some_variables_qualities]子字符串。那么,请您试一试:
rename 's/(\d{2})(\d{2})(_SerieName_[^_]+)_.*\.mkv/s$1e$2$3.mkv/' *.mkv它改名为:
0102_SerieName_Episode.Name.With.Dots_[some_variables_qualities].mkv作为:
s01e02_SerieName_Episode.Name.With.Dots.mkv请根据您的实际文件名修改上述命令中的_SerieName_部分。
发布于 2021-04-01 07:51:06
在bash中,可以使用变量展开。
for old in [0-9][0-9][0-9][0-9]_*.mkv ; do
new=s${old:0:2}e${old:2}
if [[ -e $new ]] ; then
echo "Can't rename $old to $new: file already exists." >&2
else
mv "$old" "$new"
fi
done${old:0:2}指从位置0开始的来自$old的两个字符,${old:2}是指从位置2开始的$old中的所有字符。
https://stackoverflow.com/questions/66900344
复制相似问题