我有一个目录树,每个目录都有png文件.
我想从每个目录中复制那些分辨率>(600x600)的png文件.
使用以下命令可以创建一个可以做到这一点的脚本,但它会相当长.
此命令将列出png的水平像素数> 600.
for f in *.png;do if [ `file $f | cut -f5 -d\ ` -gt 600 ] ; then echo $f;fi;done
Run Code Online (Sandbox Code Playgroud)
此命令将查找所有dirs并将file.png复制到它们
find <basedir>/ -type d -exec cp file.png '{}' \;
Run Code Online (Sandbox Code Playgroud)
有人知道解决这个问题的好方法吗?
更新:这就是我得到的.
for f in $(find . -type f -name *png -print0); do
identify -format '%w %h' $f|awk '{print $1 $2}'
# if [$1 -gt 600 && $2 -gt 600]; then
cp $f ~/600x600
fi
done
Run Code Online (Sandbox Code Playgroud)
我如何在-statement中使用$1
和$2
来自?awk
if
我真的不太明白这个问题,但我想你想要将大小超过600x600的文件复制到一个特定的目录中,然后你可以做类似的事情:
for f in *.png;do if [[ `file $f | cut -f5 -d\ ` -gt 600 ]] ; then
echo $f;fi;done|nawk '{print "cp "$1" my_specific_directory"}' | bash
Run Code Online (Sandbox Code Playgroud)
其中my_specific_directory是您要复制png的目录...
归档时间: |
|
查看次数: |
149 次 |
最近记录: |