คุณสามารถใช้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}'(เมื่อต้องการเฉพาะคอลัมน์ที่ 3)