J'aimerais renommer les fichiers images transférés d'un appareil
photonumérique dans un répertoire à l'aide d'un script bash.
par exemple : dscf4125.jpg -> 4125paysage.jpg
- éliminer les 4 premières lettres (dscf)
- conserver le n° de quatres chiffres
- ajouter un nom descriptif au fichier (paysage)
- conserver le suffix (.jpg)
Comme vous pouvez vous en douter mes connaissances en programmation sont
(trés) faibles...
Si quelqu'un avait la bonté (et le temps) d'écrire ce script avec moult
commentaires "pas à pas" pour mon éducation.
Le sam 22 nov 2003 à 15:32, Hubert a tapoté : | Bonjour,
Bonsoir,
| J'aimerais renommer les fichiers images transférés d'un appareil | photonumérique dans un répertoire à l'aide d'un script bash. | | par exemple : dscf4125.jpg -> 4125paysage.jpg | | - éliminer les 4 premières lettres (dscf) | - conserver le n° de quatres chiffres | - ajouter un nom descriptif au fichier (paysage) | - conserver le suffix (.jpg)
Et on le devine comment, le descriptif ?
La solution la plus simple que je voie pour le moment c'est un fichier texte contenant les noms des fichiers et leur description : dscf4125.jpg paysage ... ... Obtenu par un ls -1 > descriptions.txt puis en rajoutant la description à la main (1 seul mot).
Alors le script est tout simple : for fichier in dscf*.jpg; do descr=`grep $fichier descriptions.txt | cut -d ' ' -f 2` nouveau=`echo $fichier | sed -e "s,dscf,,;s,.jpg,$descr.jpg,' mv $fichier $nouveau done
| Avec mes remerciements
Avec plaisir.
Thomas -- TN: charset=iso-8859-10 C'est quoi ce charset pourri ? MW: C'est pour l'Inuit, le Lapon et l'Islandais. TN: I-nuit ? Un concurent de l'I-Mac pour la nuit ;-) ? -+- TN in Guide du Fmblien Assassin : L'Imac de la nuit -+-
Le sam 22 nov 2003 à 15:32, Hubert a tapoté :
| Bonjour,
Bonsoir,
| J'aimerais renommer les fichiers images transférés d'un appareil
| photonumérique dans un répertoire à l'aide d'un script bash.
|
| par exemple : dscf4125.jpg -> 4125paysage.jpg
|
| - éliminer les 4 premières lettres (dscf)
| - conserver le n° de quatres chiffres
| - ajouter un nom descriptif au fichier (paysage)
| - conserver le suffix (.jpg)
Et on le devine comment, le descriptif ?
La solution la plus simple que je voie pour le moment c'est
un fichier texte contenant les noms des fichiers et leur
description :
dscf4125.jpg paysage
... ...
Obtenu par un ls -1 > descriptions.txt
puis en rajoutant la description à la main (1 seul mot).
Alors le script est tout simple :
for fichier in dscf*.jpg; do
descr=`grep $fichier descriptions.txt | cut -d ' ' -f 2`
nouveau=`echo $fichier | sed -e "s,dscf,,;s,.jpg,$descr.jpg,'
mv $fichier $nouveau
done
| Avec mes remerciements
Avec plaisir.
Thomas
--
TN: charset=iso-8859-10 C'est quoi ce charset pourri ?
MW: C'est pour l'Inuit, le Lapon et l'Islandais.
TN: I-nuit ? Un concurent de l'I-Mac pour la nuit ;-) ?
-+- TN in Guide du Fmblien Assassin : L'Imac de la nuit -+-
Le sam 22 nov 2003 à 15:32, Hubert a tapoté : | Bonjour,
Bonsoir,
| J'aimerais renommer les fichiers images transférés d'un appareil | photonumérique dans un répertoire à l'aide d'un script bash. | | par exemple : dscf4125.jpg -> 4125paysage.jpg | | - éliminer les 4 premières lettres (dscf) | - conserver le n° de quatres chiffres | - ajouter un nom descriptif au fichier (paysage) | - conserver le suffix (.jpg)
Et on le devine comment, le descriptif ?
La solution la plus simple que je voie pour le moment c'est un fichier texte contenant les noms des fichiers et leur description : dscf4125.jpg paysage ... ... Obtenu par un ls -1 > descriptions.txt puis en rajoutant la description à la main (1 seul mot).
Alors le script est tout simple : for fichier in dscf*.jpg; do descr=`grep $fichier descriptions.txt | cut -d ' ' -f 2` nouveau=`echo $fichier | sed -e "s,dscf,,;s,.jpg,$descr.jpg,' mv $fichier $nouveau done
| Avec mes remerciements
Avec plaisir.
Thomas -- TN: charset=iso-8859-10 C'est quoi ce charset pourri ? MW: C'est pour l'Inuit, le Lapon et l'Islandais. TN: I-nuit ? Un concurent de l'I-Mac pour la nuit ;-) ? -+- TN in Guide du Fmblien Assassin : L'Imac de la nuit -+-
Stephane Chazelas
2003-11-22, 15:32(+01), Hubert: [...]
J'aimerais renommer les fichiers images transférés d'un appareil photonumérique dans un répertoire à l'aide d'un script bash.
Quoi, il y a encore des gens qui utilisent bash ?
par exemple : dscf4125.jpg -> 4125paysage.jpg
- éliminer les 4 premières lettres (dscf) - conserver le n° de quatres chiffres - ajouter un nom descriptif au fichier (paysage) - conserver le suffix (.jpg)
Ce qu'il te faut, ce n'est pas un shell ou un script, c'est un outil de renommage de fichiers.
J'aimerais renommer les fichiers images transférés d'un appareil
photonumérique dans un répertoire à l'aide d'un script bash.
Quoi, il y a encore des gens qui utilisent bash ?
par exemple : dscf4125.jpg -> 4125paysage.jpg
- éliminer les 4 premières lettres (dscf)
- conserver le n° de quatres chiffres
- ajouter un nom descriptif au fichier (paysage)
- conserver le suffix (.jpg)
Ce qu'il te faut, ce n'est pas un shell ou un script, c'est un
outil de renommage de fichiers.
J'aimerais renommer les fichiers images transférés d'un appareil photonumérique dans un répertoire à l'aide d'un script bash.
Quoi, il y a encore des gens qui utilisent bash ?
par exemple : dscf4125.jpg -> 4125paysage.jpg
- éliminer les 4 premières lettres (dscf) - conserver le n° de quatres chiffres - ajouter un nom descriptif au fichier (paysage) - conserver le suffix (.jpg)
Ce qu'il te faut, ce n'est pas un shell ou un script, c'est un outil de renommage de fichiers.
La solution la plus simple que je voie pour le moment c'est un fichier texte contenant les noms des fichiers et leur description : dscf4125.jpg paysage
Euh, tant qu'à faire, à partir de là, ce n'est pas trop compliqué de modifier légèrement le fichier pour qu'il contienne
mv -- "dscf4125.jpg" "4125paysage.jpg"
Sinon, si le "paysage" s'obtient en fonction du "dscf", en zsh toujours, on peut faire:
La solution la plus simple que je voie pour le moment c'est
un fichier texte contenant les noms des fichiers et leur
description :
dscf4125.jpg paysage
Euh, tant qu'à faire, à partir de là, ce n'est pas trop
compliqué de modifier légèrement le fichier pour qu'il contienne
mv -- "dscf4125.jpg" "4125paysage.jpg"
Sinon, si le "paysage" s'obtient en fonction du "dscf", en zsh
toujours, on peut faire:
La solution la plus simple que je voie pour le moment c'est un fichier texte contenant les noms des fichiers et leur description : dscf4125.jpg paysage
Euh, tant qu'à faire, à partir de là, ce n'est pas trop compliqué de modifier légèrement le fichier pour qu'il contienne
mv -- "dscf4125.jpg" "4125paysage.jpg"
Sinon, si le "paysage" s'obtient en fonction du "dscf", en zsh toujours, on peut faire:
ça aurait peut-être été mieux un script en sh standard, non ?
tiens, ben il y a un truc qui m'agace quand j'utilise zsh (que je n'utilise que peu souvent en fait), c'est qu'il faut faire un rehash à chaque fois qu'on a un nouvel exécutable dans le PATH. Il y a une solution de fou pour ça ?
-- DINH V. Hoa,
"monde de merde" -- Erwan David
[ script en zsh ]
ça aurait peut-être été mieux un script en sh standard, non ?
tiens, ben il y a un truc qui m'agace quand j'utilise zsh (que je
n'utilise que peu souvent en fait), c'est qu'il faut faire un rehash à
chaque fois qu'on a un nouvel exécutable dans le PATH. Il y a une solution
de fou pour ça ?
ça aurait peut-être été mieux un script en sh standard, non ?
tiens, ben il y a un truc qui m'agace quand j'utilise zsh (que je n'utilise que peu souvent en fait), c'est qu'il faut faire un rehash à chaque fois qu'on a un nouvel exécutable dans le PATH. Il y a une solution de fou pour ça ?
-- DINH V. Hoa,
"monde de merde" -- Erwan David
Stephane Chazelas
2003-11-23, 12:37(+01), DINH Viêt Hoà:
[ script en zsh ]
C'était pas un script, c'étaient des lignes de commande. Je n'écris jamais de script.
ça aurait peut-être été mieux un script en sh standard, non ?
Si tu voulais écrire un script, pourquoi pas oui, mais vu que c'est pour ton usage personnel, il n'a pas besoin d'être standard.
tiens, ben il y a un truc qui m'agace quand j'utilise zsh (que je n'utilise que peu souvent en fait), c'est qu'il faut faire un rehash à chaque fois qu'on a un nouvel exécutable dans le PATH. Il y a une solution de fou pour ça ?
Pas de problème chez moi avec les options par défaut. Regarde du côté des options hashcmd, hashlistall...
C'était pas un script, c'étaient des lignes de commande. Je
n'écris jamais de script.
ça aurait peut-être été mieux un script en sh standard, non ?
Si tu voulais écrire un script, pourquoi pas oui, mais vu que
c'est pour ton usage personnel, il n'a pas besoin d'être
standard.
tiens, ben il y a un truc qui m'agace quand j'utilise zsh (que je
n'utilise que peu souvent en fait), c'est qu'il faut faire un rehash à
chaque fois qu'on a un nouvel exécutable dans le PATH. Il y a une solution
de fou pour ça ?
Pas de problème chez moi avec les options par défaut.
Regarde du côté des options hashcmd, hashlistall...
C'était pas un script, c'étaient des lignes de commande. Je n'écris jamais de script.
ça aurait peut-être été mieux un script en sh standard, non ?
Si tu voulais écrire un script, pourquoi pas oui, mais vu que c'est pour ton usage personnel, il n'a pas besoin d'être standard.
tiens, ben il y a un truc qui m'agace quand j'utilise zsh (que je n'utilise que peu souvent en fait), c'est qu'il faut faire un rehash à chaque fois qu'on a un nouvel exécutable dans le PATH. Il y a une solution de fou pour ça ?
Pas de problème chez moi avec les options par défaut. Regarde du côté des options hashcmd, hashlistall...
Je vais essayer tout ça dès que j'aurais un moment. Merci beaucoup
Hubert
Vincent Lefevre
Dans l'article , DINH Viêt Hoà écrit:
ça aurait peut-être été mieux un script en sh standard, non ?
Quel intérêt? En ce qui me concerne, si c'est pour la portabilité, j'ai décidé d'abandonner définitivement sh...
tiens, ben il y a un truc qui m'agace quand j'utilise zsh (que je n'utilise que peu souvent en fait), c'est qu'il faut faire un rehash à chaque fois qu'on a un nouvel exécutable dans le PATH. Il y a une solution de fou pour ça ?
Avec les options par défaut, il n'y a normalement pas besoin.
-- Vincent Lefèvre - Web: <http://www.vinc17.org/> - 100% validated (X)HTML - Acorn Risc PC, Yellow Pig 17, Championnat International des Jeux Mathématiques et Logiques, TETRHEX, etc. Work: CR INRIA - computer arithmetic / SPACES project at LORIA
Dans l'article <etPan.3fc09bfb.16ec7a56.3716@homer>,
DINH Viêt Hoà <dinh.viet.hoa@free.fr> écrit:
ça aurait peut-être été mieux un script en sh standard, non ?
Quel intérêt? En ce qui me concerne, si c'est pour la portabilité,
j'ai décidé d'abandonner définitivement sh...
tiens, ben il y a un truc qui m'agace quand j'utilise zsh (que je
n'utilise que peu souvent en fait), c'est qu'il faut faire un rehash
à chaque fois qu'on a un nouvel exécutable dans le PATH. Il y a une
solution de fou pour ça ?
Avec les options par défaut, il n'y a normalement pas besoin.
--
Vincent Lefèvre <vincent@vinc17.org> - Web: <http://www.vinc17.org/> - 100%
validated (X)HTML - Acorn Risc PC, Yellow Pig 17, Championnat International
des Jeux Mathématiques et Logiques, TETRHEX, etc.
Work: CR INRIA - computer arithmetic / SPACES project at LORIA
ça aurait peut-être été mieux un script en sh standard, non ?
Quel intérêt? En ce qui me concerne, si c'est pour la portabilité, j'ai décidé d'abandonner définitivement sh...
tiens, ben il y a un truc qui m'agace quand j'utilise zsh (que je n'utilise que peu souvent en fait), c'est qu'il faut faire un rehash à chaque fois qu'on a un nouvel exécutable dans le PATH. Il y a une solution de fou pour ça ?
Avec les options par défaut, il n'y a normalement pas besoin.
-- Vincent Lefèvre - Web: <http://www.vinc17.org/> - 100% validated (X)HTML - Acorn Risc PC, Yellow Pig 17, Championnat International des Jeux Mathématiques et Logiques, TETRHEX, etc. Work: CR INRIA - computer arithmetic / SPACES project at LORIA
Pascal Bourguignon
Vincent Lefevre <vincent+ writes:
Dans l'article , DINH Viêt Hoà écrit:
ça aurait peut-être été mieux un script en sh standard, non ?
Quel intérêt? En ce qui me concerne, si c'est pour la portabilité, j'ai décidé d'abandonner définitivement sh...
Bash est plus portable que sh. Existe-t'il un sh sur Linux? Est ce que bash n'est pas compilable sur tout les unix qui restent en vie? ;-)
-- __Pascal_Bourguignon__ http://www.informatimago.com/ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Living free in Alaska or in Siberia, a grizzli's life expectancy is 35 years, but no more than 8 years in captivity. http://www.theadvocates.org/
Vincent Lefevre <vincent+news@vinc17.org> writes:
Dans l'article <etPan.3fc09bfb.16ec7a56.3716@homer>,
DINH Viêt Hoà <dinh.viet.hoa@free.fr> écrit:
ça aurait peut-être été mieux un script en sh standard, non ?
Quel intérêt? En ce qui me concerne, si c'est pour la portabilité,
j'ai décidé d'abandonner définitivement sh...
Bash est plus portable que sh. Existe-t'il un sh sur Linux? Est ce
que bash n'est pas compilable sur tout les unix qui restent en vie? ;-)
--
__Pascal_Bourguignon__ http://www.informatimago.com/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Living free in Alaska or in Siberia, a grizzli's life expectancy is 35 years,
but no more than 8 years in captivity. http://www.theadvocates.org/
ça aurait peut-être été mieux un script en sh standard, non ?
Quel intérêt? En ce qui me concerne, si c'est pour la portabilité, j'ai décidé d'abandonner définitivement sh...
Bash est plus portable que sh. Existe-t'il un sh sur Linux? Est ce que bash n'est pas compilable sur tout les unix qui restent en vie? ;-)
-- __Pascal_Bourguignon__ http://www.informatimago.com/ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Living free in Alaska or in Siberia, a grizzli's life expectancy is 35 years, but no more than 8 years in captivity. http://www.theadvocates.org/