如何在终端中批量重命名文件 - 将文件名中的文本从文件名末尾移动到前面

如何在终端中批量重命名文件 - 将文件名中的文本从文件名末尾移动到前面

我最近开始使用 wget 下载文件。

我正在使用 ubuntu 16 mate 来操作我的文件。

我创建自定义 URL 以包含要保存到下载文件名的特定信息,如下所示:

  http://website.com/file.txt?title_Three_little_pigs_user_spinach_

如果我使用 Firefox 和 Downthemall 下载 url,使用重命名掩码将查询字符串添加到文件名中,我可以设法获取:

  Three_little_pigs_user_spinach_file.txt

如果我使用 wget 下载相同的网址(它似乎不支持重命名屏蔽),我最终会得到:

  file.txt@title_Three_little_pigs_user_spinach_

我有一种方法可以批量重命名文件,如下所示:

前:

  file.txt@title_Three_little_pigs_user_spinach_

后:

  title_Three_little_pigs_user_spinach_file.txt

我想将@后面的文本移动到开头,然后删除@。

我有很多文件想要在 ubuntu 的终端中重命名 - 如果我可以将其添加到 bash 脚本中,那就太棒了。

我运行ubuntu和windows,但我还没有找到一个windows程序可以用这种方式重命名文件。

提前致谢。

答案1

Ubuntu 16.04 应该附带原始的 perl 提供的prename及其更新的替代品rename,其中任何一个都应该与标准sed的类似替换表达式一起使用

prename -n 's/(.*)@(.*)/$2$1/' *@*

或者

rename -n 's/(.*)@(.*)/$2$1/' *@*

您还可以mmv从存储库安装,并使用

mmv -n "*@*" "#2#1"

在所有情况下,这-n是一个用于测试的无操作标志 - 一旦您绝对确定它会执行您想要的操作,请将其删除

相关内容