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