आप identifyसे उपयोग कर सकते हैं imagemagick, और आप निम्न आदेश का उपयोग कर सकते हैं:
find . -iname "*.jpg" -type f -exec identify -format '%w %h %i' '{}' \; | awk '$1<300 || $2<300'
यह -exec <command> '{}' \;सुनिश्चित करता है कि आपके फ़ाइलनाम में स्थान हो सकते हैं, वैकल्पिक रूप से आप उपयोग कर सकते हैं
find . -iname "*.jpg" -type f | xargs -I{} identify -format '%w %h %i' {} | awk '$1<300 || $2<300'
जहाँ एक -I{}ही चीज़ का ध्यान रखा जाता है।
मुझे जो पसंद है identifyवह यह है कि आप आउटपुट प्रारूप को निर्दिष्ट कर सकते हैं; इस मामले में '%w %h %i'जो छवि की चौड़ाई, ऊंचाई और पूर्ण पथनाम देता है। फिर awkअभिव्यक्ति केवल उन पंक्तियों को रखती है जिनके लिए छवि वांछित आकार से छोटी है।
आउटपुट का उदाहरण:
64 64 ./thumbsup.jpg
100 150 ./photomin.jpg
संपादित करें: यदि आप फ़ाइल नाम केवल ( rmउदाहरण के लिए पाइपिंग के लिए) चाहते हैं , तो केवल कथन $lineमें बदल awkदें $3, तो यह केवल तीसरे कॉलम को प्रिंट करेगा।
| awk '$1<300||$2<300'या| awk '$1<300||$2<300{print $3}'(जब केवल 3rd कॉलम की आवश्यकता हो)।