2016-08-23 153 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