Commande pour supprimer photos selon taille, Utiliser l'invit de commande mac pour supprimer des photos d'u |
Bienvenue invité ( Connexion | Inscription )
Commande pour supprimer photos selon taille, Utiliser l'invit de commande mac pour supprimer des photos d'u |
8 Dec 2016, 12:43
Message
#1
|
|
Nouveau Membre Groupe : Membres Messages : 17 Inscrit : 8 Dec 2016 Membre no 200 504 |
Bonjour,
Je travaille sur mac, et j'ai sur l'ordi ici environ 800 gigas de photos. Je dois faire un tri, et en l'occurence, supprimer toutes les photos dont la taille est 163*741. Je ne peux pas le faire avec automator, car le poids de ces photos varie, seule la taille en pixel me permet de les identifier. Je pense qu'il y a environ 45 gigas de photos de cette taille. Est-ce que vous connaitriez une commande, avec l'invit de commande, sur mac, pour faire ça ? Je vous remercie bcp, Bonne journée |
|
|
8 Dec 2016, 14:09
Message
#2
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 989 Inscrit : 22 Aug 2002 Lieu : 06220 VALLAURIS Membre no 3 217 |
Bonjour
Avant d'envisager de fournir quelques lignes de code, il me semble préférable de demander comment sont stockées vos photos. Si elles sont dans la base de Photos, de iPhoto ou d'Aperture, j'ai tendance à crier casse-cou. Tripatouiller le contenu de ces bases de données risque d'en perturber le fonctionnement. |
|
|
8 Dec 2016, 14:26
Message
#3
|
|
Macbidouilleur de bronze ! Groupe : Membres Messages : 403 Inscrit : 29 Aug 2006 Lieu : France Membre no 66 917 |
Bonjour,
s'il s'agit de fichiers autonomes accessibles avec Finder, Spotlight permet de trouver des images d'après leurs dimensions en pixel (largeur, hauteur). Par contre, Automator ne permet pas d'accéder à ce paramètre. Je ne vois qu'exiftool pour un traitement de masse. -------------------- Quelques très vieux Mac stockés ici et là.
Et enfin un ordi moderne… sous Linux. |
|
|
8 Dec 2016, 14:27
Message
#4
|
|
Macbidouilleur d'Or ! Groupe : Modérateurs Messages : 19 356 Inscrit : 22 Jul 2004 Lieu : Louvain-la-Neuve (Gaule Gelbique) Membre no 21 291 |
Bonjour et bienvenue !
Je ne puis pas te guider précisément mais si l'usage de la ligne de commande te convient, il est très probable qu'exiftool soit l'outil approprié : • http://www.sno.phy.queensu.ca/~phil/exiftool/ [Grillé par lutch ! ] Ce message a été modifié par baron - 8 Dec 2016, 14:28. -------------------- ¶ MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS 12.6 “Monterey” ¶ MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8 ¶ Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C ¶ B-Box 3 + HP LaserJet 4000 N
¶ La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même. … Les corsaires mettent en berne… |
|
|
8 Dec 2016, 14:29
Message
#5
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 4 969 Inscrit : 26 Jan 2011 Lieu : Pollachius virens Membre no 164 083 |
Bonjour,
Tu peux utiliser la fonction rechercher du Finder pour trouver tous tes fichiers. Dans les critères de recherche "Autre" il y a largeur en pixels et hauteur en pixels. Ensuite il faut sélectionner les éléments trouvés et les supprimer tout simplement. Etant donné que tu 45 Go de photos de cette taille il est recommandé de ne pas faire la recherche sur tout le disque dur, mais plutôt dossier par dossier (si tes photos sont dans des dossiers). Si tes images sont dans une bibliothèque (iPhoto, Photos etc), je confirme la mise en garde de Yvan à ce sujet. -------------------- MBP 2017 15" avec clavier pourri et touchbar inutile
|
|
|
8 Dec 2016, 15:54
Message
#6
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 989 Inscrit : 22 Aug 2002 Lieu : 06220 VALLAURIS Membre no 3 217 |
Toujours sous réserve de ne pas travailler sur un disque contenant une library iPhotos, Photo ou Aperture …
vous pouvez utiliser ce script. <début> use AppleScript version "2.4" -- Yosemite (10.10) or later use framework "Foundation" use script "BridgePlus" # gratuit à : https://www.macosxautomation.com/applescrip...BridgePlus.html use scripting additions property recursiveScan : true # true = scan subfolders of the selected folder # false = doesn't scan the subfolders of the selected folder on run my germaine() end run on germaine() load framework set sourceFolder to POSIX path of (choose folder) set theFileInfo to my listFilesAndUTIsIn:sourceFolder set theResult to my filterAnArray:theFileInfo conformingTo:"public.image" set searchedSize to {163, 741} repeat with aPath in theResult set itsMetadatas to (current application's SMSForder's metadataFromImage:aPath |error|:(missing value)) try # Filter because some picture have no height or width embedded set itsWidth to PixelWidth of itsMetadatas as integer set itsHeight to PixelHeight of itsMetadatas as integer if (searchedSize = {itsHeight, itsWidth}) or searchedSize = {itsWidth, itsHeight} then tell application "System Events" to delete disk item aPath end if end try end repeat end germaine on listFilesAndUTIsIn:sourceFolder set fileManager to current application's NSFileManager's defaultManager() set aURL to current application's |NSURL|'s fileURLWithPath:sourceFolder if recursiveScan then set theOptions to (current application's NSDirectoryEnumerationSkipsPackageDescendants as integer) + (current application's NSDirectoryEnumerationSkipsHiddenFiles as integer) set theEnumerator to fileManager's enumeratorAtURL:aURL includingPropertiesForKeys:{} options:theOptions errorHandler:(missing value) set directoryContents to theEnumerator's allObjects() else set directoryContents to fileManager's contentsOfDirectoryAtURL:aURL includingPropertiesForKeys:{} options:0 |error|:(missing value) end if set tempArray to current application's NSMutableArray's arrayWithCapacity:(directoryContents's |count|()) -- array to hold values repeat with aURL in directoryContents set {theResult, theUTI} to (aURL's getResourceValue:(reference) forKey:(current application's NSURLTypeIdentifierKey) |error|:(missing value)) (tempArray's addObject:(current application's NSDictionary's dictionaryWithObjects:{aURL, theUTI} forKeys:{"theURL", "theUTI"})) end repeat return tempArray end listFilesAndUTIsIn: on filterAnArray:tempArray conformingTo:someUTI set thePredicate to current application's NSPredicate's predicateWithFormat_("theUTI UTI-CONFORMS-TO %@", someUTI) set foundItems to (tempArray's filteredArrayUsingPredicate:thePredicate)'s valueForKey:"theURL" set foundItems to (foundItems's valueForKey:"path") return foundItems as list end filterAnArray:conformingTo: #=====#=====#=====#=====#=====#===== <fin> Yvan KOENIG running Sierra 10.12.1 in French (VALLAURIS, France) jeudi 8 décembre 2016 15:54:08 Ce message a été modifié par KOENIG Yvan - 8 Dec 2016, 15:55. |
|
|
8 Dec 2016, 21:44
Message
#7
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 486 Inscrit : 29 Aug 2002 Membre no 3 340 |
il existe une commande sips
sips -g pixelWidth x.jpg Un toolkit exiftool est aussi très utile, avec ce script simple autour pour couper le champ de 2 à 2 avec les deux points comme déimiteur de colonne. exiftool -imagesize $1 | cut -f2,2 -d: http://www.sno.phy.queensu.ca/~phil/exiftool/ J-P |
|
|
8 Dec 2016, 21:55
Message
#8
|
|
Nouveau Membre Groupe : Membres Messages : 17 Inscrit : 8 Dec 2016 Membre no 200 504 |
Bonjour à tous,
je vais lire toutes vos réponses. Mes fichiers sont stockés dans des dossiers tout simplement, pas des library Je vais lire tous vos messages et les comprendre merci bcp |
|
|
9 Dec 2016, 04:37
Message
#9
|
|
Macbidouilleur d'Or ! Groupe : Modérateurs Messages : 19 356 Inscrit : 22 Jul 2004 Lieu : Louvain-la-Neuve (Gaule Gelbique) Membre no 21 291 |
Explore les réponses liées à exiftool.
Tu vas trouver ton bonheur. -------------------- ¶ MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS 12.6 “Monterey” ¶ MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8 ¶ Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C ¶ B-Box 3 + HP LaserJet 4000 N
¶ La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même. … Les corsaires mettent en berne… |
|
|
9 Dec 2016, 07:17
Message
#10
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 486 Inscrit : 29 Aug 2002 Membre no 3 340 |
Un autre fil de ce forum sur des sujet d'automatisation autour des bibliothèques de photos
http://forum.macbidouille.com/index.php?showtopic=399750 J-P |
|
|
9 Dec 2016, 16:33
Message
#11
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 879 Inscrit : 4 Apr 2004 Lieu : Lorraine - 54 Membre no 17 184 |
Bonjour
Une alternative supplémentaire que j'ai testé et qui est fonctionnelle. Je réitère toutefois les recommandations de prudence déjà rappelées précédemment. Si tu souhaites le faire avec le terminal et sans devoir installer exiftool (qui n'est pas installé en standard), tu peux utiliser la commande sips pour extraire les paramètres de taille des images (comme déjà précisé par Jaypee). A partir ce cette commande, j'ai développé une ligne de commande unique fonctionnelle et complètes en utilisant quelques commandes standard (find, perl, awk ... ) Voici la commande que je propose pour uniquement lister les fichier jpg (ici en minuscule seulement) de la taille souhaitée (163*741): Code find . -type f -name "*.jpg" -exec sips -g pixelWidth -g pixelHeight '{}' \; | perl -ne 's/ pixelWidth: ([0-9][0-9]*)\x0A/$1/g; print' | perl -ne 's/ pixelHeight: ([0-9][0-9]*)/ $1/g; print' | perl -ne 's/^\/(.*)\x0A/\"\/$1\" /g; print' | perl -ne 's/(".*") ([0-9][0-9]*) ([0-9][0-9]*)/$2 $3 $1/g; print' | awk '$1==163 && $2==741 {print $3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20}' Il faut tout d'abord te déplacer dans le répertoire de départ que tu souhaites explorer (commande cd ...).Cette commande est récursives et va donc explorer tous les sous répertoires contenus depuis le répertoire de départ. La partie {print $3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20} n'est pas très élégante mais je l'ai mise pour éviter de compliquer inutilement la commande awk tout en prévoyant que les noms des chemins vers les images peuvent contenir des espaces (ce qui était mon cas). Ici la commande accepte donc jusqu'à 17 espaces (On ne sait jamais ). Pour copier les fichiers recherchés dans un répertoire CopyFile sur le bureau (à créer au préalable) tu peux alors faire: Code find . -type f -name "*.jpg" -exec sips -g pixelWidth -g pixelHeight '{}' \; | perl -ne 's/ pixelWidth: ([0-9][0-9]*)\x0A/$1/g; print' | perl -ne 's/ pixelHeight: ([0-9][0-9]*)/ $1/g; print' | perl -ne 's/^\/(.*)\x0A/\"\/$1\" /g; print' | perl -ne 's/(".*") ([0-9][0-9]*) ([0-9][0-9]*)/$2 $3 $1/g; print' | awk '$1==163 && $2==741 {print $3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20}' | xargs -J % cp % ~/Desktop/CopyFile/ Remplacer cp par mv pour déplacer plutôt que copier.Enfin pour effacer les fichiers recherchés tu peux remplacer la commande de copie (| xargs -J % cp % ~/Desktop/CopyFile/) par : Code ... | xargs rm -v (L'option -v est facultative mais permet de lister les fichiers éffacés, car sinon tout sera "silencieux")Si tu as un gros volume à inspecter la commande mettra du temps (commence toutefois par la première commande pour lire uniquement sans rien effacer) Bon courage Ce message a été modifié par teddy7545 - 10 Dec 2016, 11:13. -------------------- MP Intel Dual Xéon 3 GHz - MacOSX 10.10.3 - ATI Radeon HD 5770 - ATTO UL5D - Apple Cinema HD Display 23 pouces MBP 15' 2017 - MBP 13' mid 2009 - iMac 24' 8,1 2,8GHz - MP G4 MDD Bi 1,25 GHz - MP G4 Quicksylver 933MHz |
|
|
9 Dec 2016, 19:56
Message
#12
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 879 Inscrit : 4 Apr 2004 Lieu : Lorraine - 54 Membre no 17 184 |
Pour améliorer et simplifier la commande awk qui ne me plaisait pas , voici une petite correction simple :
J'ai remplacé les espaces par des tabulations (\t) dans la dernière commande perl et ensuite indiqué à awk que le séparateur sera ce caractère. De ce fait, il n'y a plus d’ambiguïté avec les espaces contenus dans les noms de chemins (et ils peuvent être en nombre quelconque sans avoir à préciser un nombre de colonne important comme précédemment). Recherche et lecture des fichiers: Code find . -type f -name "*.jpg" -exec sips -g pixelWidth -g pixelHeight '{}' \; | perl -ne 's/ pixelWidth: ([0-9][0-9]*)\x0A/$1/g; print' | perl -ne 's/ pixelHeight: ([0-9][0-9]*)/ $1/g; print' | perl -ne 's/^\/(.*)\x0A/\"\/$1\" /g; print' | perl -ne 's/(".*") ([0-9][0-9]*) ([0-9][0-9]*)/$2\t$3\t$1/g; print' | awk -F \t '$1==163 && $2==741 {print $3}' Déplacement des fichiers: Code find . -type f -name "*.jpg" -exec sips -g pixelWidth -g pixelHeight '{}' \; | perl -ne 's/ pixelWidth: ([0-9][0-9]*)\x0A/$1/g; print' | perl -ne 's/ pixelHeight: ([0-9][0-9]*)/ $1/g; print' | perl -ne 's/^\/(.*)\x0A/\"\/$1\" /g; print' | perl -ne 's/(".*") ([0-9][0-9]*) ([0-9][0-9]*)/$2\t$3\t$1/g; print' | awk -F \t '$1==163 && $2==741 {print $3}' | xargs -J % mv % ~/Desktop/CopyFile/ Remplacer mv par cp pour copier plutôt que déplacer.Tu peux aussi déplacer dans la corbeille (plutôt que dans le répertoire CopyFile en modifiant la commande comme suit: Code ... | xargs -J % mv % ~/.Trash/ Effacement (sans passer par la corbeille): remplacer la commande de copie (| xargs -J % cp % ~/Desktop/CopyFile/) par : Code ... | xargs rm -v (L'option -v est facultative mais permet de lister les fichiers effacés, car sinon tout sera "silencieux")Pour traiter toutes tes photos il te faudra connaitre les extensions utilisées car la commande ci-dessusne traite que les .jpg Pour traiter par exemple en même temps les .jpg .JPG .jpeg .JPEG .png .PNG .gif .GIF, tu peux remplacer la première partie de la commande par (iname rend la commande insensible à la casse) : Code find . -type f \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" -o -iname "*.gif" \) -exec sips -g pixelWidth -g pixelHeight '{}' \; | ........... Toutefois le temps d’exécution semble augmenter de façon significative en traitant plusieurs extensions simultanées. J'essaie encore de simplifier un peu les successions de commandes perl, mais le traitement de retour chariot rend cette simplification plus compliquée. Ce message a été modifié par teddy7545 - 10 Dec 2016, 11:34. -------------------- MP Intel Dual Xéon 3 GHz - MacOSX 10.10.3 - ATI Radeon HD 5770 - ATTO UL5D - Apple Cinema HD Display 23 pouces MBP 15' 2017 - MBP 13' mid 2009 - iMac 24' 8,1 2,8GHz - MP G4 MDD Bi 1,25 GHz - MP G4 Quicksylver 933MHz |
|
|
11 Dec 2016, 19:06
Message
#13
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 989 Inscrit : 22 Aug 2002 Lieu : 06220 VALLAURIS Membre no 3 217 |
Juste pour information, le script que j'ai posté vient de balayer 760 Go de fichiers sur un disque dur mécanique de 1 To en moins de 14 minutes.
|
|
|
11 Dec 2016, 19:40
Message
#14
|
|
Macbidouilleur d'Or ! Groupe : Modérateurs Messages : 19 356 Inscrit : 22 Jul 2004 Lieu : Louvain-la-Neuve (Gaule Gelbique) Membre no 21 291 |
Brillant !
-------------------- ¶ MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS 12.6 “Monterey” ¶ MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8 ¶ Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C ¶ B-Box 3 + HP LaserJet 4000 N
¶ La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même. … Les corsaires mettent en berne… |
|
|
14 Dec 2016, 00:04
Message
#15
|
|
Nouveau Membre Groupe : Membres Messages : 17 Inscrit : 8 Dec 2016 Membre no 200 504 |
Bonjour,
Merci bcp pour ces commentaires ! Je suis un peu perdu. Je dois donc télécharger un logiciel pour appliquer le code, c'est ça ? merci, Bonjour, Pardon de mon incompétence. Je vais devoir apprendre à écrire la commande pour me placer dans le repertoire source. Si possible, je veux bien éviter exitfool. Si je veux déplacer tous ces fichiers dans le dossier "delete" sur le bureau, que je vais ensuite supprimer, je dois utiliser la commande 2 en remplaçant quoi donc par mv ? merci! Bonjour
Une alternative supplémentaire que j'ai testé et qui est fonctionnelle. Je réitère toutefois les recommandations de prudence déjà rappelées précédemment. Si tu souhaites le faire avec le terminal et sans devoir installer exiftool (qui n'est pas installé en standard), tu peux utiliser la commande sips pour extraire les paramètres de taille des images (comme déjà précisé par Jaypee). A partir ce cette commande, j'ai développé une ligne de commande unique fonctionnelle et complètes en utilisant quelques commandes standard (find, perl, awk ... ) Voici la commande que je propose pour uniquement lister les fichier jpg (ici en minuscule seulement) de la taille souhaitée (163*741): Code find . -type f -name "*.jpg" -exec sips -g pixelWidth -g pixelHeight '{}' \; | perl -ne 's/ pixelWidth: ([0-9][0-9]*)\x0A/$1/g; print' | perl -ne 's/ pixelHeight: ([0-9][0-9]*)/ $1/g; print' | perl -ne 's/^\/(.*)\x0A/\"\/$1\" /g; print' | perl -ne 's/(".*") ([0-9][0-9]*) ([0-9][0-9]*)/$2 $3 $1/g; print' | awk '$1==163 && $2==741 {print $3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20}' Il faut tout d'abord te déplacer dans le répertoire de départ que tu souhaites explorer (commande cd ...).Cette commande est récursives et va donc explorer tous les sous répertoires contenus depuis le répertoire de départ. La partie {print $3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20} n'est pas très élégante mais je l'ai mise pour éviter de compliquer inutilement la commande awk tout en prévoyant que les noms des chemins vers les images peuvent contenir des espaces (ce qui était mon cas). Ici la commande accepte donc jusqu'à 17 espaces (On ne sait jamais ). Pour copier les fichiers recherchés dans un répertoire CopyFile sur le bureau (à créer au préalable) tu peux alors faire: Code find . -type f -name "*.jpg" -exec sips -g pixelWidth -g pixelHeight '{}' \; | perl -ne 's/ pixelWidth: ([0-9][0-9]*)\x0A/$1/g; print' | perl -ne 's/ pixelHeight: ([0-9][0-9]*)/ $1/g; print' | perl -ne 's/^\/(.*)\x0A/\"\/$1\" /g; print' | perl -ne 's/(".*") ([0-9][0-9]*) ([0-9][0-9]*)/$2 $3 $1/g; print' | awk '$1==163 && $2==741 {print $3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20}' | xargs -J % cp % ~/Desktop/CopyFile/ Remplacer cp par mv pour déplacer plutôt que copier.Enfin pour effacer les fichiers recherchés tu peux remplacer la commande de copie (| xargs -J % cp % ~/Desktop/CopyFile/) par : Code ... | xargs rm -v (L'option -v est facultative mais permet de lister les fichiers éffacés, car sinon tout sera "silencieux")Si tu as un gros volume à inspecter la commande mettra du temps (commence toutefois par la première commande pour lire uniquement sans rien effacer) Bon courage Ce message a été modifié par Aladindindin - 14 Dec 2016, 00:14. |
|
|
14 Dec 2016, 00:51
Message
#16
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 879 Inscrit : 4 Apr 2004 Lieu : Lorraine - 54 Membre no 17 184 |
Bonsoir
Il te faut donc tout d'abord créer ce répertoire (nommé delete) sur ton bureau (avec le Finder c'est le plus simple). Ensuite il faut démarrer l'application "Terminal" (application qui se trouve dans /Applications/Utilitaires) Il faut ensuite placer le terminal au niveau du répertoire ou tes photos se trouvent. Pas exemple, si tes photos sont contenues dans un répertoire "MesPhotos" (et dans ses sous répertoires) du répertoire Image de ton compte, tu devras taper Code cd ~/Pictures/MesPhotos ~représente ton compte (ta petite maison)Pictures est le nom réel du répertoire Images dans le système (comme Desktop est le nom réel du répertoire Bureau) Enfin pour déplacer les fichiers recherchés dans le répertoire delete de ton bureau la commande devient donc : Code find . -type f -name "*.jpg" -exec sips -g pixelWidth -g pixelHeight '{}' \; | perl -ne 's/ pixelWidth: ([0-9][0-9]*)\x0A/$1/g; print' | perl -ne 's/ pixelHeight: ([0-9][0-9]*)/ $1/g; print' | perl -ne 's/^\/(.*)\x0A/\"\/$1\" /g; print' | perl -ne 's/(".*") ([0-9][0-9]*) ([0-9][0-9]*)/$2\t$3\t$1/g; print' | awk -F \t '$1==163 && $2==741 {print $3}' | xargs -J % mv % ~/Desktop/delete/ Si tu es pas sur de toi avec le terminal n'oublie pas de faire une sauvegarde et test d'abord la première de mes commandes qui ne fais que lister sans rien déplacer. Bon courage. Ce message a été modifié par teddy7545 - 14 Dec 2016, 00:56. -------------------- MP Intel Dual Xéon 3 GHz - MacOSX 10.10.3 - ATI Radeon HD 5770 - ATTO UL5D - Apple Cinema HD Display 23 pouces MBP 15' 2017 - MBP 13' mid 2009 - iMac 24' 8,1 2,8GHz - MP G4 MDD Bi 1,25 GHz - MP G4 Quicksylver 933MHz |
|
|
14 Dec 2016, 16:17
Message
#17
|
|
Nouveau Membre Groupe : Membres Messages : 17 Inscrit : 8 Dec 2016 Membre no 200 504 |
BOnjour,
Merci ! Je vais surement écrire ceci, si ça fait sens, car j'ai des photos partout (document, musique - projets musiques et photo - images, vidéo, enfin partout): cd ~/MAC Puis-je ? Je viens de tenter de lister les fichiers et j'ai obtenu ceci: "Error: Error querying file" Ce message a été modifié par Aladindindin - 14 Dec 2016, 16:41. |
|
|
14 Dec 2016, 19:20
Message
#18
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 879 Inscrit : 4 Apr 2004 Lieu : Lorraine - 54 Membre no 17 184 |
Bonjour,
Code cd ~/MAC ne fait sens que si tu as un répertoire répertoire MAC dans ta "maison" ce qui normalement ne devrait pas être.Si tu essaie et que ce répertoire n'existe pas tu aura un message te disant ... No such file or directory Si tu veux parcourir tout les répertoires à la fois tu peux tenter Code cd ~/ Citation Je viens de tenter de lister les fichiers et j'ai obtenu ceci: "Error: Error querying file" Il est possible que quelques fichiers soient cryptés, inaccessible ou dégradés (surtout si tu as tenté directement ~/ car tu traverse des répertoires inadéquats) mais ça n'empêche pas la commande de poursuivre. J'ai aussi quelques lignes de ce type dans certains répertoires ... ça ne gêne pas le fonctionnement. Ca signifie que même si le fichier existe, il ne sait pas répondre à la requêtes sips et donc qu'il est incapable de donner sa taille en pixel. (encore une fois il s'agit probablement d'un fichier corrompu ou d'un fichier d'un format spécifique non reconnu) Ceux que j'ai trouvé chez moi sont clairement dans ce cas. Si tu laisses la commande se poursuivre elle devrait te donner le résultat attendus (sur tous les fichiers lisibles). Si tu veux savoir quels fichiers semblent "corrompus" ou en tous les cas n'ont pas de taille, essai cette commande: Code find . -type f -name "*.jpg" -exec sips -g pixelWidth -g pixelHeight '{}' \; 2>&1 | grep -A1 "Error querying file" Laisse la tourner jusqu'au bout pour qu'elle te liste tous les fichiers qui posent problème. Regarde ensuite si tu arrives à les lire en passant par le Finder . En fonction de la place ou ils se trouvent, fait attention avant de les supprimer car il peut s'agir également de document avec un format spécifique (j'ai un exemple avec un livre epub rangé dans ibooks et dont le contenu est "crypté" : il marche mais les fichiers jpg attaché ne peux pas être lu directement et ne répondent pas à la commande sips > "Error: Error querying file"). Pour cette raison, je te recommande plutôt de parcourir ton disque en ciblant mieux ou sont les photos que tu veux traiter quitte a lancer la commande pour chacun des répertoires majeurs (Download, Desktop, Pictures ...) Ce message a été modifié par teddy7545 - 15 Dec 2016, 01:13. -------------------- MP Intel Dual Xéon 3 GHz - MacOSX 10.10.3 - ATI Radeon HD 5770 - ATTO UL5D - Apple Cinema HD Display 23 pouces MBP 15' 2017 - MBP 13' mid 2009 - iMac 24' 8,1 2,8GHz - MP G4 MDD Bi 1,25 GHz - MP G4 Quicksylver 933MHz |
|
|
15 Dec 2016, 04:11
Message
#19
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 879 Inscrit : 4 Apr 2004 Lieu : Lorraine - 54 Membre no 17 184 |
Pour éviter d'avoir les erreurs avec les fichiers qui posent problème (et d'éliminer les difficultés que ça peut provoquer avec les fichiers contigües) , trouves ci-dessous une ligne de commande modifiée pour lister:
Code find . -path ./Library -prune -o -type f -iname "*.jpg" -exec sips -g pixelWidth -g pixelHeight '{}' \; 2>&1 | perl -ne 's/ pixelWidth: ([0-9][0-9]*)\x0A/$1/g; print' | perl -ne 's/ pixelHeight: ([0-9][0-9]*)/\t$1/g; print' | perl -ne 's/^(Error.*)\x0A/$1@/g; print' | grep -v 'Error\|denied\|Warning' | perl -ne 's/^\/(.*)\x0A/\"\/$1\"\t/g; print' | awk -F \t '($2==741 && $3==163) || ($2==163 && $3==741) {print $1}' Puisque tu tiens à explorer tous les fichiers, j'ai inclus une exclusion sur le répertoire Library Avec cette commande tu ne devrais plus avoir de message d'erreur. Ma première commande recherchais les fichiers avec la taille 163x741, et j'ai également ajouté ici les fichiers dont la taille est de 741x163. Je ne sais pas si c'était bien ce que tu souhaitais mais j'ai vu que c'est ce qu'avais prévu KOENIG Yvan dans son script. Pour info, sur mon disque de 1T, l'exploration de tous les fichiers de mon compte utilisateur de 450 Go (Library de 90 Go exclus) soit 360 Go (360000 fichiers) et la production de la liste des fichiers avec la taille recherchée parmi environ 16000 fichiers jpg à duré moins de 7mn35 Citation real 7m34.292s user 2m50.462s sys 3m12.330s pour déplacer tous les fichiers répondant à ces critères dans ton répertoire delete, il suffit d'ajouter la commande suivante à la suite de la première partie Code | xargs -J % mv % ~/Desktop/delete/
Ce message a été modifié par teddy7545 - 15 Dec 2016, 13:03. -------------------- MP Intel Dual Xéon 3 GHz - MacOSX 10.10.3 - ATI Radeon HD 5770 - ATTO UL5D - Apple Cinema HD Display 23 pouces MBP 15' 2017 - MBP 13' mid 2009 - iMac 24' 8,1 2,8GHz - MP G4 MDD Bi 1,25 GHz - MP G4 Quicksylver 933MHz |
|
|
28 Apr 2017, 15:52
Message
#20
|
|
Macbidouilleur d'Or ! Groupe : Rédacteurs Messages : 5 064 Inscrit : 19 Feb 2002 Lieu : BZH Membre no 2 083 |
Bonjour, Je travaille sur mac, et j'ai sur l'ordi ici environ 800 gigas de photos. Je dois faire un tri, et en l'occurence, supprimer toutes les photos dont la taille est 163*741. Je ne peux pas le faire avec automator, car le poids de ces photos varie, seule la taille en pixel me permet de les identifier. Je pense qu'il y a environ 45 gigas de photos de cette taille. Est-ce que vous connaitriez une commande, avec l'invit de commande, sur mac, pour faire ça ? Je vous remercie bcp, Bonne journée Je reviens sur ce sujet, même si la solution proposée n'est pas CLI (command line)... Je vous invite à regarder du côté de Hazel, un excellent produit :-) Son énorme avantage est qu'il surveille les dossiers dont vous lui confiez une ou des tâches, en tirant partie des événements du FileSystem et détecte quasiment de suite. Vous n'avez donc pas besoin d'avoir un script qui se lance régulièrement. Voici ce qui permet de créer une action (en un rien de temps) pour copier des images dont la taille est H/V supérieure à 1000 pixels. Pour celles et ceux qui ne veulent pas écrire une seule ligne de scripts/AppleScript, c’est un "must have" ! -------------------- Quis custodiet ipsos custodes ? - Lorsqu'un sujet est résolu, merci d'indiquer [Résolu] dans le titre de votre post !
Luttons contre le style SMS !!! iPhone 14Pro Max 256 Go iOS 17• MacBook Pro 16 2019 Core i9 - macOS 12.7.2 - 32 GB RAM - 2 TB • @Orange Linux • OPNSense / pfSense • Une pointe de Windows aussi • Enfocus Switch Expert • callas pdfToolBox |
|
|
29 Apr 2017, 07:09
Message
#21
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 4 969 Inscrit : 26 Jan 2011 Lieu : Pollachius virens Membre no 164 083 |
Pour celles et ceux qui ne veulent pas écrire une seule ligne de scripts/AppleScript, c’est un "must have" ! +1 C'est un "must have" pour tout le monde. -------------------- MBP 2017 15" avec clavier pourri et touchbar inutile
|
|
|
Nous sommes le : 26th April 2024 - 09:42 |