Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 28/06/2011, à 11:35

Neko62

recherche sélective et renommage de fichiers

Bonjour à tous,

voilà je cherche à créer une commande en bash qui me permettrait de renommer un ensemble de fichiers.
Il s'agit d'images au format jpg classées dans différents dossiers.
- Pour tous les clichés j'ai un fichier original de type ImageXXX.jpg
- Pour certains clichés retouchés j'ai en plus du fichier original, un fichier retouché de type ImageXXX_modified.jpg

Quand j'importe mes images dans Shotwell, ce dernier m'affiche mes deux versions, l'original ( ImageXXX.jpg ) et la version retouchée ( ImageXXX_modified.jpg ).
Donc ce que je veux faire, c'est renommer les fichiers originaux avec un point devant pour qu'ils soient cachés.
donc ImageXXX.jpg deviendrait .ImageXXX.jpg
Mais ! seulement les fichiers originaux ayant une version retouchée, pour n'afficher que la version retouchée dans Shotwell.
Les fichiers originaux n'ayant fait l'objet d'aucune retouche ne doivent pas être renommés !

Donc il faut d'abord répertorier dans différents dossiers les fichiers originaux accompagnés d'une version retouchée, et ne renommer que ceux-là !

Une petite idée ?

D'avance merci.

Hors ligne

#2 Le 28/06/2011, à 13:57

Hizoka

Re : recherche sélective et renommage de fichiers

for i in *modified.jpg
do
v_originale=${i/_modified}
echo "${v_originale}"
done

tiens, voila une piste

Dernière modification par Hizoka (Le 28/06/2011, à 13:57)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#3 Le 28/06/2011, à 20:29

gerarmentor

Re : recherche sélective et renommage de fichiers

Salut

Voici deux possibilités (parmi d'autres !) :

#!/bin/bash
shopt -s globstar
for i in ./**/*_modified.jpg
do 
    i="${i%_modified.jpg}.jpg"
    [ -f "$i" ] && mv "$i" "${i%/*}/.${i##*/}"
done

ou

#!/bin/bash
while read -rd $'\0' i
do 
    i="${i%_modified.jpg}.jpg"
    [ -f "$i" ] && rename 's,([^/]+$),.$1,' "$i"
done < <(find -name "Image*_modified.jpg" -print0)

Si tu veux uniquement tester sans modifier, tu peux ajouter "echo " devant "mv" dans le premier, ou ajouter l'option "-n" à "rename" dans le second.

Ces scripts vont fouiller dans tous les sous dossiers.

Hors ligne

#4 Le 29/06/2011, à 08:09

Neko62

Re : recherche sélective et renommage de fichiers

Merci beaucoup pour ces pistes !
Je teste cela dès ce soir. smile

Hors ligne