通过删除部分原始名称重命名bash文件

时间:2016-03-10 10:17:56

标签: regex bash file

刚刚从bash开始,我遇到了一个微不足道的问题。

我有一个包含多个zip文件的目录,如:

C:\Program Files\Common Files\Microsoft Shared\web server extensions\14\ISAPI

我想创建一个bash脚本来删除zip名称中的XXX-:

102-123.zip
54-458.zip
1566-akka.zip

我从

开始
123.zip
458.zip
akka.zip

我尝试从正则表达式开始,但我正在为此做一些非常复杂的事情。

你对我能做什么有什么想法吗?

2 个答案:

答案 0 :(得分:0)

使用rename即可:

rename 's/^[^-]+-//' *.zip

如果rename实用程序不可用,请使用:

for f in *.zip; do
   mv "$f" "${f#*-}"
done

答案 1 :(得分:0)

如果要在子目录中递归重命名,请使用find

find . -type f -name '*.zip' -print0 | xargs -L 1 -0 bash -c 'mv "$1" "${1#*-}"' \;