आप 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 कॉलम की आवश्यकता हो)।