#1 Le 15/12/2023, à 22:58
- fred1234
suppression de fichier en fonction de sa resolution en pixel - RESOLU
Bonjour forum,
Mon besoin est dans le titre, j'ai fais une recupération de fichiers avec Photorec. Il y a beaucoup de fichiers inutiles de petites résolutions (120x160).
Je voudrais les supprimer avec en parametres une résolution mini par ex > 250 pixel.
Je connais les commandes identify , grep, rm , mais je n'arrive pas à les piper.
Dernière modification par fred1234 (Le 16/12/2023, à 11:42)
Hors ligne
#2 Le 16/12/2023, à 08:32
- pingouinux
Re : suppression de fichier en fonction de sa resolution en pixel - RESOLU
Bonjour,
Je réponds un peu à côté.
Pour voir, dans l'arborescence d'où est lancée la commande, les fichiers de taille inférieure à 10000 bytes, par exemple :
find -type f -size -10000c -ls
Pour supprimer ces fichiers :
find -type f -size -10000c -delete
Il est prudent de faire une copie des fichiers dans un autre répertoire avant de commencer, car la commande avec -delete est dangereuse si on ne sait pas bien ce que l'on fait.
Hors ligne
#3 Le 16/12/2023, à 10:14
- fred1234
Re : suppression de fichier en fonction de sa resolution en pixel - RESOLU
Merci pingouinux pour votre réponse,
mais pourrait-on supprimer les fichiers en fonction de leur résolution, par ex tout ceux qui sont inférieur à 2250 x 1255 ?
Je connais la commande identify qui donne la résolution mais je ne sais pas l'associer avec une commande delete ou rm par ex.
Hors ligne
#4 Le 16/12/2023, à 10:16
- geole
Re : suppression de fichier en fonction de sa resolution en pixel - RESOLU
Bonjour.
Attention: Cette commande s'applique à tous les types de fichiers. Elle va donc aussi supprimer les fichiers texte. A moins que dans photorec, tu n'aies ciblé que les fichiers images.
Dernière modification par geole (Le 16/12/2023, à 10:23)
Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit, utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248
Hors ligne
#5 Le 16/12/2023, à 10:20
- fred1234
Re : suppression de fichier en fonction de sa resolution en pixel - RESOLU
j'ai ciblé que des fichiers jpg
Hors ligne
#6 Le 16/12/2023, à 10:46
- geole
Re : suppression de fichier en fonction de sa resolution en pixel - RESOLU
Une idée.
- Redirige la sortie de identify dans un fichier ( >fic.txt)
- Trie le fichier sur ton critère d'élimination.
- Ouvre le fichier avec ton éditeur favori
- Supprime toutes les lignes que tu veux conserver.
- Sauve le fichier.
- Supprime tous les fichiers présents dans ce fichier de référence. Sauf erreur de codif.
while read j ; do sudo rm $j; done <fic.txt
Dernière modification par geole (Le 16/12/2023, à 10:52)
Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit, utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248
Hors ligne
#7 Le 16/12/2023, à 11:15
- jplemoine
Re : suppression de fichier en fonction de sa resolution en pixel - RESOLU
En 1 seule ligne, c'est pas évident mais tu peux peut-être essayer de faire un script genre (il faut adapter à ton cas précis):
#!/bin/bash
# mettre -x pour debugger
set +x
# les 2 lignes peuvent etre remplacees par un find
rep="/home/toto/Images"
liste=$(ls -d $rep/*.png)
for fichier in $liste
do
ligne=$(identify "$fichier")
type=$(echo $ligne | cut -d " " -f 2)
res=$(echo $ligne | cut -d " " -f 3)
larg=$(echo $res | cut -d "x" -f 1)
haut=$(echo $res | cut -d "x" -f 2)
echo "----"
echo "fichier = '$fichier', type = '$type', res='$res'"
echo "larg='$larg', haut='$haut'
echo "----"
# par exemple : test qu une dimension est inferieure à 300
if [ $larg -le 300 ] || [ $haut -le 300 ]; then
echo "A supprimer"
fi
done
Dernière modification par jplemoine (Le 16/12/2023, à 11:51)
Ce compte ne servira plus : vous pouvez le supprimer si le coeur vous en dit...
Laissé par l'auteur pour historique.
Hors ligne
#8 Le 16/12/2023, à 11:37
- fred1234
Re : suppression de fichier en fonction de sa resolution en pixel - RESOLU
Un grand merci à tous les participants,
J'ai les éléments pour mon besoin.
Hors ligne
#9 Le 16/12/2023, à 17:58
- Watael
Re : suppression de fichier en fonction de sa resolution en pixel - RESOLU
liste=$(ls -d $rep/*.png) for fichier in $liste
non, mais ça va pas !?
for fichier in "$rep"/*.png
et puis il s'agirait de lire la doc d'identify pour obtenir une sortie formatée avec les informations pertinentes.
read w h < <(identify -format '%W %H' "$fichier")
Dernière modification par Watael (Le 16/12/2023, à 20:02)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#10 Le 16/12/2023, à 18:21
- jplemoine
Re : suppression de fichier en fonction de sa resolution en pixel - RESOLU
liste=$(ls -d $rep/*.png) for fichier in $liste
non, mais ça va pas !?
MDR. Si, ça va... C'est juste que je préfère passer par une variable intermédiaire : ça permet de faire un écho : plus facile à débugger / maintenir.
Mais il y a plein de manière de faire et j'avais bien dit qu'il fallait l'adapter.
Ce compte ne servira plus : vous pouvez le supprimer si le coeur vous en dit...
Laissé par l'auteur pour historique.
Hors ligne
#11 Le 16/12/2023, à 19:03
- nany
Re : suppression de fichier en fonction de sa resolution en pixel - RESOLU
Bonjour,
Watael a écrit :
liste=$(ls -d $rep/*.png) for fichier in $liste
non, mais ça va pas !?
MDR. Si, ça va... C'est juste que je préfère passer par une variable intermédiaire : ça permet de faire un écho : plus facile à débugger / maintenir.
En fait c’est l’usage de ls pour renseigner une variable qui est fortement déconseillé (il devrait même y avoir une loi pour l’interdire ) : une seule espace dans le nom d’un fichier rend la variable inexploitable.
Hors ligne
#12 Le 16/12/2023, à 19:20
- jplemoine
Re : suppression de fichier en fonction de sa resolution en pixel - RESOLU
D'accord. Je comprends mieux....
En fait, On peut utiliser IFS mais ça ne fonctionne pas car le cut n'est plus bon.
Donc, mon code ne fonctionne pas s'il y a une espace dans le nom du fichier
il faut gérer ce cas là de manière explicite.
Ce compte ne servira plus : vous pouvez le supprimer si le coeur vous en dit...
Laissé par l'auteur pour historique.
Hors ligne
#13 Le 16/12/2023, à 20:11
- Watael
Re : suppression de fichier en fonction de sa resolution en pixel - RESOLU
si tu veux une variable, utilise un tableau :
tablo=( "$rep"/*.png )
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#14 Le 16/12/2023, à 21:31
- geole
Re : suppression de fichier en fonction de sa resolution en pixel - RESOLU
Bonjour forum,
Mon besoin est dans le titre, j'ai fais une récupération de fichiers avec Photorec
Cette récupération fabrique des noms de fichiers exclusivement numériques.
Ajout.
Voici le traitement que je proposais
On se remet propriétaire des données.
sudo chown -R $USER recup_dir*
On traite un répertoire.
cd recup_dir.1
identify *>Tri
sort Tri -k3 >Tri1
Puis élimination manuelle de ce qu'il faut conserver.
Puis élimination de ce qui ne convient pas.
cat Tri1 | cut -d" " -f1 | xargs rm
Mais tout cela n'est pas satisfaisant car il y a une énorme quantité de répertoires à traiter.
Il faut donc faire une boucle et dans cette boucle, éliminer directement ce qui est "petit".
Cependant, trouver la liste complète des formats à éliminer va être un travail de titan vu la quantité de formats possibles.
Dernière modification par geole (Le 17/12/2023, à 14:16)
Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit, utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248
Hors ligne
#15 Le 16/12/2023, à 21:55
- Watael
Re : suppression de fichier en fonction de sa resolution en pixel - RESOLU
while read j ; do sudo rm $j; done <fic.txt
non, non.
xargs -a /chemin/fichierTrié sudo rm
:D
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne