Sie können identify
from imagemagick
und den folgenden Befehl verwenden:
find . -iname "*.jpg" -type f -exec identify -format '%w %h %i' '{}' \; | awk '$1<300 || $2<300'
Durch die Verwendung von -exec <command> '{}' \;
wird sichergestellt, dass Ihr Dateiname Leerzeichen enthalten kann. Alternativ können Sie auch verwenden
find . -iname "*.jpg" -type f | xargs -I{} identify -format '%w %h %i' {} | awk '$1<300 || $2<300'
wo der -I{}
sich um das selbe kümmert.
Mir gefällt, identify
dass Sie das Ausgabeformat festlegen können. In diesem Fall werden '%w %h %i'
die Breite, Höhe und der vollständige Pfadname des Bildes angegeben. Der awk
Ausdruck behält dann nur die Zeilen bei, für die das Bild kleiner als die gewünschte Größe ist.
Beispiel für die Ausgabe:
64 64 ./thumbsup.jpg
100 150 ./photomin.jpg
Bearbeiten: Wenn Sie nur die Dateinamen möchten (zum rm
Beispiel für die Weiterleitung an ), ändern Sie einfach $line
die awk
Anweisung in $3
, dann wird nur die dritte Spalte gedruckt.
| awk '$1<300||$2<300'
oder| awk '$1<300||$2<300{print $3}'
(wenn nur die 3. Spalte benötigt wird).'%w %h %i\n'
) hinzufügen , damit es für mich funktioniert.Ich denke, die akzeptierte Antwort ist sehr gut, aber ich wollte eine andere mögliche Lösung hinzufügen ...
Obwohl ich
ImageMagick
heute meistens selbst Werkzeuge benutze ,netpbm
ist das ein alter Freund für die Bildbearbeitung. Mit dem folgenden Befehl können Sie die Größe eines beliebigen Bildformats anzeigen:Dadurch wird eine Ausgabe generiert, die wie folgt aussieht:
Zur Beantwortung der Frage "Was folgt nach der Pipe?" Verwende ich
while read
häufiger als ich es verwende,xargs
weil es flexibler ist. Meinenetpbm
Antwort auf die Frage sieht so aus:quelle
Das hat bei mir funktioniert:
Dies ist das Ausgabebeispiel:
2520161636481000.png 75 x 75
./2620160819191100.png 75x75
./2420181545550700.png 75x75
quelle
Der
identify
Befehl aus demimagemagick
Paket macht was Sie wollen:Auch hier müssten Sie dann verwenden
grep
, um die Bildgröße zu sortieren.Ich vermute jedoch, dass es einfacher ist
find
, JPEG-Dateien unterhalb einer bestimmten Größe zu entfernen , wenn Sie nicht über einen sehr großen Bereich von Bildgrößen verfügen :(Es lohnt sich, das Programm zu starten, ohne
-delete
vorher zu überprüfen, ob die gewünschten Elemente nicht gefunden wurden. Andernfalls werden Sie vor dem Löschen nicht dazu aufgefordert.)quelle