|
|
|
|
Bonjour,
Je voudrais savoir si il est possible dans les deux differents cas suivants de changer les noms de plusieurs fichiers au moyen d'UN SEUL script ou d'UNE SEULE commande.
Cas A
Dans le repertoire X, j'ai, par exemple, 100 fichiers suivants :
avril_mesures_001
avril_mesures_002
.. .. .. ..
avril_mesures_100
Comment changer les noms d'un seul coup par
avril_calculs_001
avril_calculs_002
.. .. .. ..
avril_calculs_100
au moyen d'un seul script?
Cas B
Dans le repertoire Y, j'ai les trois fichiers suivants :
orange.rtf
peche.rtf
pomme.rtf
Est-ce qu'il est possible que je puisse les renommer respectivement par :
fruit_001.rtf {orange.rtf}
fruit_002.rtf {peche.rtf}
fruit_003.rtf {pomme.rtf}
au moyen d'un seul script?
Merci
Configuration: Linux Konqueror 3.5
Bonsoir,
$ rename mesures calculs avril_mesures_*Ou part un simple script sinon: #!/bin/bash
for file in *_mesures_*; do
mv $file ${file/mesures/calculs}
doneVoir le manuel de bash (man bash) pour les information sur la substitution, d'autre outils existent (sed, awk, etc.) pour faire quelque chose de similaire, mais ce script fonctionnera pour peu que /bin/bash soit présent. :)
Pour le cas B en revanche, je ne voit pas trop ou tu souhaite arriver. Si 001 -> orange, 002 ->pêche, 003 -> pomme et si la liste n'est pas trop longue, il te faudrait un fichier de correspondance... exemple: $ cat correspondace.lst rename_fruits.sh
001:orange
002:peche
003:pomme
$ cat rename_fruits.sh
#!/bin/bash
for file in fruit*; do
ref=$(echo $file | sed -r 's/fruit_([0-9]{3}).rtf/\1/')
mv $file $(grep $ref correspondace.lst |cut -f2 -d':').rtf
done
Voir man sed, man cut Cordialement Une belette, un lapin !? C'est pas normal!
|
Bonjour,
|
Bonjour,
|
Salut,
|
Bonjour lami20j,
|
Salut,
$ ls -1t
fraise.rtf
prune.rtf
framboise.rtf
poire.rtf
cerise.rtf
banane.rtf
abricot.rtf
pomme.rtf
peche.rtf
orange.rtf
$ for fic in $(ls -t);do i=$(($i+1)); mv -v $fic $(printf "fruit_%03d.rtf{$fic}" $i);done && unset i
`fraise.rtf' -> `fruit_001.rtf{fraise.rtf}'
`prune.rtf' -> `fruit_002.rtf{prune.rtf}'
`framboise.rtf' -> `fruit_003.rtf{framboise.rtf}'
`poire.rtf' -> `fruit_004.rtf{poire.rtf}'
`cerise.rtf' -> `fruit_005.rtf{cerise.rtf}'
`banane.rtf' -> `fruit_006.rtf{banane.rtf}'
`abricot.rtf' -> `fruit_007.rtf{abricot.rtf}'
`pomme.rtf' -> `fruit_008.rtf{pomme.rtf}'
`peche.rtf' -> `fruit_009.rtf{peche.rtf}'
`orange.rtf' -> `fruit_010.rtf{orange.rtf}'
$ ls -1t
fruit_001.rtf{fraise.rtf}
fruit_002.rtf{prune.rtf}
fruit_003.rtf{framboise.rtf}
fruit_004.rtf{poire.rtf}
fruit_005.rtf{cerise.rtf}
fruit_006.rtf{banane.rtf}
fruit_007.rtf{abricot.rtf}
fruit_008.rtf{pomme.rtf}
fruit_009.rtf{peche.rtf}
fruit_010.rtf{orange.rtf}
lami20j |
lami20j, je viens d'essayer ta solution et effectivement ca fonctionne tres bien. Moi, je l'ai mis dans un script. De plus, elle est beaucoup plus courte que la solution de l'autre personne.
|