首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有人能帮我重命名工具吗?

有人能帮我重命名工具吗?
EN

Stack Overflow用户
提问于 2021-04-01 07:43:37
回答 2查看 60关注 0票数 0

我必须用这个结构重命名一堆文件(这是一个意甲):SSEE_SerieName_Episode.Name.With.Dots_some_variables_qualities.mkv

党卫军是03年的季号,EE集的号码是08年(前导为零)。Plex不认识它因为它的名字很烂..。所以我想把它重命名为: sSSeEE_SerieName_Episode.Name.With.Dots.mkv

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-04-01 08:17:45

假设:

  • 您正在使用Perl命令。
  • Episode.Name.With.Dots子字符串不包含下划线字符。
  • 您希望删除_[some_variables_qualities]子字符串。
  • 上面的子字符串以下划线字符开头。

那么,请您试一试:

代码语言:javascript
复制
rename 's/(\d{2})(\d{2})(_SerieName_[^_]+)_.*\.mkv/s$1e$2$3.mkv/' *.mkv

它改名为:

代码语言:javascript
复制
0102_SerieName_Episode.Name.With.Dots_[some_variables_qualities].mkv

作为:

代码语言:javascript
复制
s01e02_SerieName_Episode.Name.With.Dots.mkv

请根据您的实际文件名修改上述命令中的_SerieName_部分。

票数 1
EN

Stack Overflow用户

发布于 2021-04-01 07:51:06

bash中,可以使用变量展开。

代码语言:javascript
复制
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中的所有字符。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66900344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档