Bạn có thể sử dụng identifytừ imagemagickvà bạn có thể sử dụng lệnh sau:
find . -iname "*.jpg" -type f -exec identify -format '%w %h %i' '{}' \; | awk '$1<300 || $2<300'
việc sử dụng -exec <command> '{}' \;đảm bảo rằng tên tệp của bạn có thể có khoảng trắng trong đó, ngoài ra bạn có thể sử dụng
find . -iname "*.jpg" -type f | xargs -I{} identify -format '%w %h %i' {} | awk '$1<300 || $2<300'
nơi -I{}chăm sóc điều tương tự.
Điều tôi thích identifylà bạn có thể chỉ định định dạng đầu ra; trong trường hợp '%w %h %i'này cung cấp chiều rộng, chiều cao và tên đường dẫn đầy đủ của hình ảnh. Sau đó, awkbiểu thức chỉ giữ những dòng mà hình ảnh nhỏ hơn kích thước mong muốn.
Ví dụ về đầu ra:
64 64 ./thumbsup.jpg
100 150 ./photomin.jpg
Chỉnh sửa: Nếu bạn chỉ muốn tên tệp ( rmví dụ như đường ống ), chỉ cần thay đổi $linetrong awkcâu lệnh thành $3, thì nó sẽ chỉ in cột thứ ba.
| awk '$1<300||$2<300'hoặc| awk '$1<300||$2<300{print $3}'(khi chỉ cần cột thứ 3).