Command-Line

查找具有特定像素高度/寬度的圖像並將它們移動到另一個目錄中

  • January 2, 2022

我想找到螢幕截圖文件,其特定像素高度為 2220,寬度為 1080,並希望將它們移動到另一個文件夾中。這不是我可以手動做的,因為源是 100+k 圖像左右。

我找到了以下命令,但無法使其正常工作:

find /Users/myuser/Desktop/daten/JPG -name "*.jpg" -exec bash -c "sips -g pixelHeight -g pixelWidth {} | grep -E '2220‘ >/dev/null" \; -exec mv {} /Users/myuser/Desktop/screenshots \; 

錯誤資訊:

bash: -c: line 0: unexpected EOF while looking for matching `''
bash: -c: line 1: syntax error: unexpected end of file

謝謝您的幫助。

更新:修復了命令並將文件夾名稱中的空白刪除為:

find /Users/myuser/Desktop/daten/JPG8  -name "*.jpg" -exec bash -c "sips -g pixelHeight -g pixelWidth {} | grep '2220' >/dev/null" \; -exec mv {} /Users/myuser/Desktop/screenshots \; 

..但仍然不能正常工作 - 沒有文件被移動。

只是為了結束這個問題:我已經設法移動並最終使用以下命令刪除了所有螢幕截圖:

find ./JPG* -name "*.jpg" -exec bash -c "sudo exiftool -csv -s -ImageSize {} | grep > /dev/null 'x2220'" \; -exec mv {} ./screenshots/ \;

引用自:https://unix.stackexchange.com/questions/669250