2015-08-25 49 views
0

因此,在输出视频的图像序列帧之后,比我需要我已经结束了与方式更多的图像。我想削减这一点。图像被命名为1.png,高达959.png。用bash/zsh脚本执行此操作有一个简便的方法吗?像删除其他图像并重命名下一个以保持订单?降低图像序列

在此先感谢。

+1

要删除文件1 5 9 13 17 ...使用bash:'RM {1..959..4} .png' – Cyrus

回答

0

好了,所以我发现有些解决的。

#!/bin/zsh 

c=0 
cc=0 
ext=".png" 
for file in `ls | sort -V` 
do 
    let c=c+1; 
    let cc=cc+1; 
    if [ $c -eq 2 ]; then 
    rm -f $file 
    c=0 
    else 
    let cc=cc-1; 
    new="$cc$ext" 
    mv $file $new 
    fi 
done 

这将列出当前目录中的所有文件并循环遍历它们,删除所有其他文件并重命名下一个文件。请注意,这也会重命名脚本文件,因此您可能需要创建一些逻辑来避免这种情况。

+0

的简单的方法来避免重命名/通过简单地不将其放置在相同的删除脚本目录。更好的做法是只在你实际想要触及的文件上运行循环:'用于$(ls * .png | sort -V)或更好的文件,用于* .png(n)'中的文件。 – Adaephon