Bannière de NPC
  Trucs et Astuces pour BeOS -       Catégorie: Scripting
 

Accueil

Alertes
Applications
Audio et Vidéo
Divers
Interface
Matériel
Réseaux
Terminal
Tracker

Infos Serveur

 

 

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
 

 

BeArchives.com Banner Exchange Network