剪切子字符串并重命名文件使用shell命令

时间:2015-03-17 03:23:25

标签: shell

如何重命名文件名?我想映射名称:

abc-hdpi.png ⟶ abc.png
bcd-hdpi.png ⟶ bcd.png

...

我有很多文件可以执行此操作,因此mv abc-hdpi.png abc.png不是一个好的解决方案。

2 个答案:

答案 0 :(得分:5)

搜索prename(Perl rename)命令;它可以轻松完成工作:

prename 's/-hdpi.png/.png/' *-hdpi.png

失败:

for file in *-hdpi.png
do
    mv "$file" "${file%-hdpi.png}.png"
done

答案 1 :(得分:0)

您可以从固定长度的字符串中提取,如下所示:

NAME[0]="abc-hdpi.png"
NAME[1]="def-hdpi.png"
NAME[2]="ghi-hdpi.png"
NAME[3]="jkl-hdpi.png"
NAME[4]="mno-hdpi.png"

rename(){
    var=$1
    mv $var $var{0:2}$var{8:}
}

for i in "${Name[@]}"
do
    rename $i
done