Anda dapat menggunakan identify
dari imagemagick
, dan Anda dapat menggunakan perintah berikut:
find . -iname "*.jpg" -type f -exec identify -format '%w %h %i' '{}' \; | awk '$1<300 || $2<300'
penggunaan -exec <command> '{}' \;
memastikan bahwa nama file Anda dapat memiliki ruang di dalamnya, atau Anda dapat menggunakan
find . -iname "*.jpg" -type f | xargs -I{} identify -format '%w %h %i' {} | awk '$1<300 || $2<300'
di mana -I{}
mengurus hal yang sama.
Yang saya sukai identify
adalah Anda dapat menentukan format output; dalam hal ini '%w %h %i'
yang memberikan lebar, tinggi, dan pathname lengkap dari gambar. Maka awk
ekspresi hanya menyimpan garis-garis yang gambarnya lebih kecil dari ukuran yang diinginkan.
Contoh output:
64 64 ./thumbsup.jpg
100 150 ./photomin.jpg
Edit: Jika Anda ingin nama file saja (untuk pipa untuk rm
misalnya), hanya mengubah $line
dalam awk
pernyataan $3
, maka hanya akan mencetak kolom ketiga.
| awk '$1<300||$2<300'
atau| awk '$1<300||$2<300{print $3}'
(ketika hanya kolom ke-3 diperlukan).'%w %h %i\n'
) agar berfungsi untuk saya.| xargs -I {} mv {} /destination/directory/
Saya pikir jawaban yang diterima sangat bagus, tetapi saya ingin menambahkan solusi lain yang mungkin ...
Meskipun
ImageMagick
sekarang saya paling sering menggunakan alat, sayanetpbm
adalah teman lama untuk memproses gambar. Anda dapat melihat ukuran format gambar apa pun dengan perintah:Ini akan menghasilkan output yang terlihat seperti:
Untuk menjawab pertanyaan "apa yang mengikuti setelah pipa?", Saya menggunakan
while read
lebih sering daripada yang saya gunakanxargs
karena lebih fleksibel.netpbm
Jawaban saya untuk pertanyaannya terlihat seperti ini:sumber
Ini bekerja untuk saya:
Ini adalah sampel keluaran:
./2520161636481000.png 75x75
./2620160819191100.png 75x75
./2420181545550700.png 75x75
sumber
The
identify
perintah dariimagemagick
paket melakukan apa yang Anda inginkan:Sekali lagi, Anda perlu menggunakannya
grep
untuk memilah ukuran gambar.Namun, saya menduga bahwa kecuali Anda memiliki kisaran ukuran gambar yang sangat luas, akan lebih mudah hanya digunakan
find
untuk menghapus file JPEG di bawah ukuran yang diberikan:(Layak berjalan tanpa
-delete
terlebih dahulu untuk memeriksa tidak menemukan hal-hal yang ingin Anda pertahankan - itu tidak akan meminta Anda sebelum menghapus sebaliknya).sumber