Bạn có thể sử dụng identify
từ imagemagick
và 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 identify
là 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 đó, awk
biể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 ( rm
ví dụ như đường ống ), chỉ cần thay đổi $line
trong awk
câ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).