# modifier le suffixe d'une liste de fichiers dans le terminal



## iManu (19 Octobre 2001)

Salut,

C'est une question idiote, mais j'ai une liste de fichiers .f à modifier en fichier .for par exemple.
Je peux me taper ça à la main, mais comme il y en a 350, c'est long...
D'où l'idée de faire un mv (ou un cp...).
mais mv *.f *.for ne marche pas.
Je suppose qu'il y a une ligne de commande appropriée pour faire ça, mais laquelle ?

Merci,

iManu


----------



## Membre supprimé 2 (19 Octobre 2001)

voila, j'ai ecris un petit script qui fait ca

#!/bin/sh
for ID in `ls *$1`; do
	mv $ID `basename $ID $1`$2;
done

met le dans un fichier texte, appelle le chsuf par exemple
puis change les droits

chmod a+x chsuf

et va dans le repertoire ou tu veux changer les noms

par exemple tape

chsuf .jpg .gif

n'oublie pas les `.` devant les suffixes

bonne chance ;-)


----------



## Gwenhiver (19 Octobre 2001)

J'ai profité de la question de Manu pour réviser un peu mes cours de shell-script, et j'ai essayé de faire un truc. Mais ça ne marche pas  
	

	
	
		
		

		
		
	


	



En fait, on m'a enseigné que quand on a un nom de fichier qui se termine par une extension, en faisant par exemple :

set nom = essai.txt
$nom:r

on obtenait "essai". Mais sous X, il n'a pas l'air de reconnaître les :r, :e, :h, et :t. Il y a une raison (j'utilise dans les deux cas /bin/sh) ? Au passage, et dans le même genre, Mac OS X refuse mon "set nom = essai.txt", mais veut à la place "nom = essai.txt".

Conclusion, pas la peine que je me replonge trop dans le shell-script. J'en reste à l'AppleScript. (Au passage, il y avait dans /Library/Scripts/Finder Scripts/ un script qui faisait exactement ça.)


----------



## iManu (19 Octobre 2001)

Merci à tous les deux !
Ca marche.

Tu vois Gwenn, faut vraiement que tu viennes   
	

	
	
		
		

		
		
	


	




A +


----------



## Membre supprimé 2 (19 Octobre 2001)

euh, c'est mon 100 post ;-) ca se fete

bon, j'ai essaie ce que tu as dis Gwen,

set nom = essai.txt
$nom:r

ca marche tres bien en tcsh  
	

	
	
		
		

		
		
	


	



peut etre pas en sh...

et de rien pour le script


----------



## Gwenhiver (19 Octobre 2001)

Manu :  
	

	
	
		
		

		
		
	


	




 aussi
William : merci pour l'info, faudra que je jette un coup d'il.


----------



## Gwenhiver (19 Octobre 2001)

Effectivement, ça tourne. Donc on peut aussi faire comme ça (en remplaçant .new par l'extension souhaitée):

 <BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>#! /bin/tcsh

set var = `ls`
foreach i ($var)
        mv $i $i:r.new
end<HR></BLOCKQUOTE>

Sauf que ma version rate son coup sur les fichiers comportant un espace. Et bien sûr, je pourrais l'améliorer pour qu'elle prenne l'extension en argument.
Mais bon, finalement, je vais peut-être m'y intéresser de nouveau à ce shell-script.


----------



## [MGZ]Toine (19 Octobre 2001)

<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Posté à l'origine par Gwenhiver:
*
Mais bon, finalement, je vais peut-être m'y intéresser de nouveau à ce shell-script.*<HR></BLOCKQUOTE>








Je ne te reconnaît pas là Gwen


----------



## Gwenhiver (19 Octobre 2001)

<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Posté à l'origine par [MGZ]Toine:
*Je ne te reconnaît pas là Gwen   
	

	
	
		
		

		
		
	


	





*<HR></BLOCKQUOTE>

Ben j'essaye de faire des efforts...


----------



## Le Gognol (20 Octobre 2001)

<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Posté à l'origine par William:
*#!/bin/sh
for ID in `ls *$1`; do
	mv $ID `basename $ID $1`$2;
done

met le dans un fichier texte, appelle le chsuf par exemple
puis change les droits

chmod a+x chsuf*<HR></BLOCKQUOTE>

Et ben ! Le DOS c'est plus simple non ?  
	

	
	
		
		

		
		
	


	




 Bon j'espère que des scripts tout faits à tout faire qui n'obligent pas à passer par le teminal débarqueront rapidement...

'+


----------



## Membre supprimé 2 (20 Octobre 2001)

Tu es dans le forum Unix, Linux et OpenSource, il existe des solutions plus simple avec interface graphique, mais c'etait pas la question. 

Faut que tu sashes que si c'est facile d'utiliser une interface, c'est parce qu'il y a des gens qui on resolu le probleme a ta place. Et ici, en plus on le fait pour aider.

Non, dos c'est merdique a cote d'unix.

Et si quand on repond gentiment aux questions on se fait remballer, je sais pas si je vais continuer a le faire, je suis pas oblige...


----------



## Le Gognol (20 Octobre 2001)

<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Posté à l'origine par William:
*Tu es dans le forum Unix, Linux et OpenSource, il existe des solutions plus simple avec interface graphique, mais c'etait pas la question. *<HR></BLOCKQUOTE>

Ben en fait c'est le sujet qui m'a attiré, pas le forum...   
	

	
	
		
		

		
		
	


	




 <BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>*Faut que tu sashes que si c'est facile d'utiliser une interface, c'est parce qu'il y a des gens qui on resolu le probleme a ta place. Et ici, en plus on le fait pour aider.*<HR></BLOCKQUOTE>

Ah ben tant mieux alors, au contraire, je vous laisse bosser moi !   
	

	
	
		
		

		
		
	


	




 <BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>*Non, dos c'est merdique a cote d'unix.*<HR></BLOCKQUOTE>

Je sais bien, mais c'était juste une constatation de la part d'un utilisateur qui aime bien les interfaces graphiques et simples en général.

 <BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>*Et si quand on repond gentiment aux questions on se fait remballer, je sais pas si je vais continuer a le faire, je suis pas oblige...*<HR></BLOCKQUOTE>

Houlà, mais je n'ai remballé personne moi, il y a méprise ! Encore une fois je constatais juste une certaine complexité et je me posais des questions d'utilisateur curieux et pas trop téméraire, c'est tout.   
	

	
	
		
		

		
		
	


	




 Au contraire, n'hésite pas à continuer à contribuer à l'enrichissement des connaissances des autres utilisateurs comme moi !

'+

[19 octobre 2001 : message édité par Le Gognol]


----------



## iManu (20 Octobre 2001)

Oui, encore une fois merci William.
Ca fait un peu feignant, mais les forums sont géniaux pour poser des questions simples et avoir des réponses rapides - ce qui permet de bosser plus vite ET d'apprendre.

Pour Le Gognol, une remarque:
Ce qui m'a séduit sur Mac, c'est l'interface.
Ce qui m'a séduit dans ce que j'entrevois d'unix sur ma station sun c'est la puissance - tu peux faire n'importe quoi (bon, l'inconvénient c'est aussi que tu peux faire réellement n'importe quoi  
	

	
	
		
		

		
		
	


	




 ).

Bref avec OsX, je crois que je vais m'éclater, mais j'ai besoin d'apprendre, et c'est pas facile quand il faut aussi produire...

En ce qui concerne l'interface, Gwen a fait remarquer que les scripts permettaient de faire ce que je recherchais - ce qui me donne une raison de regarder AppleScript de près - dès que possible...


----------



## Membre supprimé 2 (20 Octobre 2001)

Vous inquitez pas, je vais pas m'arreter.
C'est vrai que ca a l'air un peu complexe vu comme ca,  mais normalement l'utilisateur final ne voit rien ;-)


----------

