2016-08-23 54 views
1

我想通过我的音乐文件夹中的专辑封面图片,并猛砸输出图像尺寸

  1. 确保所有的专辑封面是正方形(宽度=身高)
  2. 请确保专辑封面上有500像素

的最小宽度,我发现几件事情,做每一个这些,但我在bash十分缓慢,并不能完全摸不着头脑。最近我来了这是:

find /mnt/2TB_1/Music/Archive/Complete -mindepth 2 -maxdepth 2 -type d -exec echo identify -format "%wx%h" "{}/folder.jpg" ';' -fprint0 /mnt/2TB_1/Music/output.txt 

这是看正确的文件夹深度。当我运行这个时,我的命令提示符显示所有正确的folder.jpgs的尺寸,并且output.txt唯一的文件具有路径(没有换行符)。然而,我真的需要它们在一个地方(最好是在output.txt文件中,因为有很多的folder.jpg文件可以查看)。

我不会拒绝一个bash脚本,做我所提到的过滤,但我很愿意接受类似的输出:

w xh path 
500x500 /mnt/2TB_1/Music/Archive/Complete/Artist1/Album1/folder.jpg 
500x500 /mnt/2TB_1/Music/Archive/Complete/Artist1/Album2/folder.jpg 
350x350 /mnt/2TB_1/Music/Archive/Complete/Artist2/Album1/folder.jpg 

从那里,我可以把它在一个电子表格和做analasys。

+0

你所有的图片都叫'folder.jpg'吗? –

+0

是的,它们都被称为folder.jpg。 – user1053009

回答

1

不知道是什么问题,或者您的文件到底是如何看,但你似乎想要的东西,这应该是接近:

find /mnt/2TB_1 -name folder.jpg -exec identify -format "%G %M\n" {} \; 

您可以在您所有的排除和深度,事情再一次把它添加按照你想要的方式工作,或者只是在Excel中删除你不需要的东西。

如果你想输出到文件(称为list.txt),只需使用:

find ... > list.txt 

如果你要分析该文件,并发现不是方形或更窄超过500个像素的图像,你可以只使用awk,像这样:

awk -F'[x ]' '($1!=$2)||($1<500)' list.txt 

-F'[x ]'告诉awk上使用每行拆分领域无论是在尺寸还是空间x。这意味着宽度被放在$1的字段和$2字段的高度。数学很容易。

+0

这会将结果发送到控制台,对吗?我希望他们发送到一个txt文件,因为至少会有4000次点击,并且会有比控制台所能容纳的更多的数据。我想要做的分析是找到1)height!= width 2)width <500的任何folder.jpg文件。我只对找到符合该条件的文件感兴趣。 – user1053009

+0

为了清晰我更新了请求 – user1053009

+0

这是一个简单的解决方法:只需在命令的末尾添加'> output_file',并将所有在控制台上显示的输出写入'output_file'中。如果您想了解有关该主题的更多信息,请阅读bash的I/O流及其重定向。 – Aaron