linux中批量修改文件名,请问怎么修改啊?

现在有多个’*******-1.0.0-SNAPSHOT.jar‘这样的文件名我需要删除’-1.0.0-SNAPSHOT‘ 保留前面的文件和.jar 类似与’api-1.0.0-SNAPSHOT.jar‘改为’api.jar‘我用rename无法修改-

img

for var in *.jar; do mv "$var" "${var%-1.0.0-SNAPSHOT.jar}.jar"; done

这条命令可以完成,谢谢各位

使用mv 命令进行修改
命令格式:

mv  旧文件名称  新文件名称

下面是用正则表达式的一种批量替换方法,我在我本地尝试了是可以的

#!/bin/sh
for file in `ls | grep 0.0.1-SNAPSHOT.jar`
do
  newfile=`echo $file | sed 's/\([a-z]\+\)-0\.0\.1-SNAPSHOT\(\.jar\)/\1\2/'`
  mv $file $newfile
done

直接用rename就可以

试试这个
rename "s/-1.0.0-SNAPSHOT//" * //