bash - 使用 Bash 批量重命名文件

标签 bash shell file-rename

Bash 如何重命名一系列包以删除它们的版本号?我一直在玩弄 expr%%,但无济于事。

例子:

Xft2-2.1.13.pkg 变为 Xft2.pkg

jasper-1.900.1.pkg 变成 jasper.pkg

xorg-libXrandr-1.2.3.pkg 变为 xorg-libXrandr.pkg

最佳答案

您可以使用 bash 的参数扩展功能

for i in ./*.pkg ; do mv "$i" "${i/-[0-9.]*.pkg/.pkg}" ; done

带空格的文件名需要引号。

关于bash - 使用 Bash 批量重命名文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/602706/

相关文章:

bash 管道防止全局变量分配

linux - Bash 脚本 - 遍历文件夹并移动到 1000 个文件夹

bash - 如何使用 export PS1 ="\W\$"修复自定义终端提示;清除;变成\W $

bash - 查找少于 2000 行的文本文件并删除它们

r - 如何在不更改修改日期的情况下重命名文件

ruby-on-rails - Ruby On Rails - 如何重命名当前上传的文件?

linux - 如何检查包含变量的字符串是否存在于 bash 的特定文件中?

linux - 将文件从服务器A复制到服务器B的shell脚本

linux - 对具有多个 netCDF 文件的目录同时执行 shell 和 cdo 操作

windows - 如何在 Windows 中使用 File-Rename 又名 Perl 的重命名?