ubuntu - 重命名多个文件 - Ubuntu 正则表达式

标签 ubuntu rename

我的 ubuntu 服务器上有多个文件。

blue-A00001-001.png
green-A00001-002.png
red-A00001-003.png
white-A00001-004.png

ETC

我需要重命名这些文件,所以看起来像这样
A00001-001_blue.png
A00001-002_green.png
A00001-003_red.png
A00001-004_white.png

有人可以帮忙吗?

谢谢

最佳答案

只需 :

rename -n 's/^([^-]+)-([^-]+)-([^\.]+)/${2}-${3}_${1}/' *.png

删除 -n当输出看起来不错时切换。

man rename

warning 还有其他同名的工具可能会也可能不会这样做,所以要小心。
util-linux 中的重命名命令包,不会。

如果您运行以下命令 (GNU)
$ file "$(readlink -f "$(type -p rename)")"

并且您的结果包含 Perl script, ASCII text executable并且不包含 ELF ,那么这似乎是正确的工具 =)

如果没有,将其设为 Debian 上的默认值(通常已经如此)和衍生物如 Ubuntu :
$ sudo apt install rename
$ sudo update-alternatives --set rename /usr/bin/file-rename

如果您在其他发行版中没有此命令,请搜索您的包管理器以安装它或 do it manually (没有部门...)

这个工具最初是由 Perl 的父亲 Larry Wall 编写的。

关于ubuntu - 重命名多个文件 - Ubuntu 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62250283/

相关文章:

regex - 将文件名中除扩展名之外的所有 '.' 重命名为 '_'

Linux - 将所有文件夹重命名为目标中的上层

ubuntu - Ubuntu 16.04 中的 Browsersync "browser"选项

linux - su -c 从引号内的命令获取参数

ubuntu - 尝试在 Ubuntu 上构建 OpenCV 3 世界模块时出现 CMake 不存在目标错误

Python:用渐进式数字重命名列表中的重复项而不对列表进行排序

linux - Linux g++ 中 MSVC++ _wrename 的等价物?

python - 谷歌浏览器下载文件时如何自动重命名文件?

android - 无法在 Android 设备上运行应用程序 (Linux/Ubuntu)

python - pip install <python_package> 卡住了。弹出从 pip==9.0.1 升级到 pip==19.0.3 的消息。如何使用 pip 9.0.1 安装新软件包?