#1 Le 28/06/2011, à 10: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, à 12: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, à 12:57)
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#3 Le 28/06/2011, à 19: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, à 07:09
- Neko62
Re : recherche sélective et renommage de fichiers
Merci beaucoup pour ces pistes !
Je teste cela dès ce soir.
Hors ligne