AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1248637
Accepted
Vidal
Vidal
Asked: 2020-06-10 13:16:12 +0800 CST2020-06-10 13:16:12 +0800 CST 2020-06-10 13:16:12 +0800 CST

重命名文件和目录

  • 772

我有大量的文件电影和目录,其命名结构是: 电影名称(作者,年份) 或 电影名称(作者,年份)LANG

我打算以这种方式重命名它们(几乎三千)

作者 - 电影名称 - 年份 - LANG

或与此非常相似的东西。

我的问题是:有没有办法用一个简单的脚本进行批量重命名?

提前非常感谢,伙计们。

scripts directory files batch rename
  • 2 2 个回答
  • 111 Views

2 个回答

  • Voted
  1. Best Answer
    steeldriver
    2020-06-10T16:20:56+08:002020-06-10T16:20:56+08:00

    尽管您可以在基于 perl 的rename工具中使用正则表达式捕获组来执行此操作,但我对此的选择可能是mmvex。

    $ mmv -n '* (*, *) *' '#2 - #1 - #3 - #4'
    Name of the film (Author, year) LANG -> Author - Name of the film - year - LANG
    

    带组件和不带LANG组件的情况最容易单独处理 - 对于后一种情况,您可以将命令简化为

    mmv -n '* (*, *)' '#2 - #1 - #3'
    

    contrib 模块也可能发生类似的事情zsh:zmv

     % zmv -n '(*) \((*), (*)\) (*)' '$2 - $1 - $3 - $4'
    mv -- 'Name of the film (Author, year) LANG' 'Author - Name of the film - year - LANG'
    

    -n当您对转换是正确的感到高兴时删除(一个明显的问题是如果Name of the film包含括号)。

    • 2
  2. Vidal
    2020-06-11T08:40:50+08:002020-06-11T08:40:50+08:00
    • Steeldriver 提供的第一个解决方案完美运行。在某些情况下,必须进行小的更改,因为某些电影名称与 LANG 无关。
    • 顺便说一句,这如何在递归模式下完成?我在 mmv 文档中没有找到该选项。

    我回答自己。经过一些互联网挖掘和一些测试,我可以设法更改文件夹中包含的文件。这 ; 用于指示系统(不带 -r)进入文件夹。但是; 将成为第一个变量,因此顺序将如下所示:

    mmv ';* (*, )。' '#1#3 - #2 (#4).#5'

    在这种情况下,#1 对应于 ; 其余的是名称更改的一部分。

    所以,非常感谢 steeldriver 教我一个新的强大的工具来批量重命名 esaly。还要感谢 Elia Kagan 的评论。

    • 0

相关问题

  • 如何在 Nautilus 中管理保存的完整网页及其目录(例如 n.html 和 n_files)

  • 如何每 5 秒运行一次脚本?

  • 如何将必须从其自己的目录中运行的程序添加到面板或主菜单?

  • 如何编写 shell 脚本来安装应用程序列表?

  • Mac OS X Automator 的替代品?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve