Linux:使用精确子字符串重命名文件

时间:2016-05-18 16:12:50

标签: linux shell ubuntu

我有一个JAR文件,它的版本号附加在文件名中,每次从外部存储库重建时,我都希望将它重命名为crontab shell脚本中的通用名称。例如:“example-1.9.4.jar”应重命名为“example.jar”,以便所有版本共享相同的文件名(在任何给定目录中一次不超过一个版本)。我正在考虑使用Regex和rename命令,但我无法弄清楚如何处理确切的子串模式。

如何使用rename命令从文件名中删除版本号?

2 个答案:

答案 0 :(得分:1)

使用rename实用程序,您可以执行以下操作:

rename -n 's/-(\d+\.)+jar$/.jar/' *.jar

如果rename不可用,请使用:

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

答案 1 :(得分:1)

您可以尝试 sed 命令,创建此功能......

sedreplace() { sed -i "s/$1/$2/" $3; } 

用法:

sedreplace regexp_needle replacement file

如果您在shell脚本中编写此函数,可以使用 source 命令将其添加到范围