我有一个图片很少的文件夹,都有相同的名称格式:
some-random-name-min.jpg
another-random-name-min.jpg
and-another-random-name-min.jpg
我想删除最后一个-min
,以便遵循此ui.bootstrap
我尝试了这个bash脚本:
#!/bin/bash
for filename in /home/al/domus-images/portfolio/white snow/*.jpg; do
mv $filname $(echo $filename | sed -e 's/....\.jpg$//');
done
但是在运行脚本后没有任何事情发生。不知道我在这里错过了什么?
由于
答案 0 :(得分:3)
您可以使用find
命令列出文件,然后从文件名中删除-min
,如下所示。
for filename in `find "/home/al/domus-images/portfolio/white snow/" -name "*.jpg"`;
do
mv $filname $(echo $filename | sed 's/-min.jpg$/.jpg/');
done
这删除最后" -min"来自文件名。
答案 1 :(得分:2)
这可能是一个想法:
#!/bin/bash
for filename in *\-min.jpg
do
newFile=$(echo $filename |sed "s/\-min//g")
printf "before\t:filename[$filename]\tnewFile[$newFile]\n"
mv $filename $newFile
printf "after\t:filename[$filename]\tnewFile[$newFile]\n"
done
输出
[shell] ➤ ./myMove
before :filename[and-another-random-name-min.jpg] newFile[and-another-random-name.jpg]
after :filename[and-another-random-name-min.jpg] newFile[and-another-random-name.jpg]
before :filename[another-random-name-min.jpg] newFile[another-random-name.jpg]
after :filename[another-random-name-min.jpg] newFile[another-random-name.jpg]
before :filename[some-random-name-min.jpg] newFile[some-random-name.jpg]
after :filename[some-random-name-min.jpg] newFile[some-random-name.jpg]
此*\-min.jpg
只是为了确保只获取您需要的文件
答案 2 :(得分:0)
这可能就是你要找的东西
#!/bin/bash
for filename in /home/al/domus-images/portfolio/white snow/*-min.jpg
do
mv ${filename} ${filename//-min.jpg/.jpg}
done
答案 3 :(得分:0)
不能比这简单。
rename 's/\-min.jpg$/.jpg/' *-min.jpg