Renommer un ensemble de fichiers
Si vous arrivez sur BeOS en venant du monde DOS, vous pouvez vous
attendre à ce que le Terminal soit beaucoup plus puissant que DOS. Et
c'est le cas. Mais la puissance a un prix -- certaines choses sont plus
compliquées à faire dans le bash que sous DOS. Un bon exemple
est le renommage d'une grande quantité de fichiers. Disons que
vous avez un dossier contenant 500 fichiers textes, tous finissant
par l'extension .txt, et vous voulez les voir terminer par l'extension .html.
Sous DOS, cela est très simple en saisissant ren *.txt *.html.
Comme sous le bash, le renommage s'effectue en utilisant la commande
mv, vous pourriez vous attendre à saisir
mv *.txt *.html pour faire le même travail. Mais cela ne marche
pas de cette même façon.
Ce serait complexe d'expliquer exactement le fonctionnement du shell bash
pour indiquer pourquoi cela ne marche pas, mais si vous voulez accomplir cette
tâche, voici comment: saisissez le code suivant dans un shell en appuyant
sur Entrée à chaque fin de ligne:
#!/bin/sh
#renomme
if [ -z $1 ] ; then
echo usage:
echo renomme extension1 extension2
elif [ -z $2 ] ; then
echo usage:
echo renomme extension1 extension2
else
for i in *.$1
do
mv "$i" "$(echo $i | sed s/.$1$/.$2/)"
done
fi
[NB de Jean Schwerer: j'ai modifié ce script pour que les
extensions soient des paramètres et non plus fixées dans le code
du script, de plus j'ai ajouté des contrôles pour vérifier
la présence de ces paramètres.]
Voici ce qui se passe exactement: vous mettez en place une boucle qui
parcourt tous les fichiers se terminant par extension1 (qui est un
paramètre à donner) dans le dossier actuel
(* correspond à tous les fichiers du dossier actuel). "Do"
signifie que vous allez regarder le premier fichier et faire quelque chose
avec. Ce quelque chose est la commande move, mv. On déplace
le premier fichier de sa localisation {variable.extension1} vers
{variable.extension2}. Cette partie nécessite que l'on utilise sed
(signifiant stream editor) pour substituer la chaîne "extension1"
à la fin de la ligne par la chaîne "extension2". "Done" signifie
que l'on est prêt à s'occuper du fichier suivant, et sert aussi
d'indicateur au processus pour quitter lorsque tous les fichiers ont
été traités.
Si vous avez besoin d'utiliser cette fonction fréquemment,
enregistrez le bloc de texte sous un script commençant par la ligne
magique: #!/bin/sh et appelez le "ren" ou quelquechose d'intuitif.
Remarquez que le changement d'extension ne changera pas le type des
fichiers, parce que BeOS n'utilise les extensions que comme une première
étape dans l'identification des types de fichiers. Pour faire cela,
lisez l'astuce Changer le type MIME de
plusieurs fichiers en une seule fois.
Téléchargez
le script présenté dans cette astuce ici.
Read this Tip in English here
Hier findest Du den Tip in Deutsch
Cette astuce est une contribution de Scot Hacker.
Site de l'auteur de cette astuce: http://www.birdhouse.org/beos/bible/.
Astuce traduite par: Nicolas.
Traduction
Française du Serveur BeTips © 2000 BeTrayer et équipe
|