J'ai beaucoup de fichiers qui ressemblent à ceci :
DET01-ABC-5_50-001.dat
...
DET01-ABC-5_50-0025.dat
et je veux qu'ils ressemblent à ça :
DET01-XYZ-5_50-001.dat
...
DET01-XYZ-5_50-0025.dat
Comment puis-je le faire ?
J'ai beaucoup de fichiers qui ressemblent à ceci :
DET01-ABC-5_50-001.dat
...
DET01-ABC-5_50-0025.dat
et je veux qu'ils ressemblent à ça :
DET01-XYZ-5_50-001.dat
...
DET01-XYZ-5_50-0025.dat
Comment puis-je le faire ?
for file in *.dat ; do mv $file ${file//ABC/XYZ} ; done
Non rename
o sed
nécessaire. Il suffit de bash expansion des paramètres .
Quelque chose comme ceci fera l'affaire. Le site for
devra peut-être être modifiée en fonction des noms de fichiers que vous souhaitez capturer.
for fspec1 in DET01-ABC-5_50-*.dat ; do
fspec2=$(echo ${fspec1} | sed 's/-ABC-/-XYZ-/')
mv ${fspec1} ${fspec2}
done
Vous devez toujours tester ces scripts sur copies de vos données, d'ailleurs, et dans des répertoires totalement différents.
Vous devrez apprendre à utiliser sed http://unixhelp.ed.ac.uk/CGI/man-cgi?sed
Et aussi à utiliser pour que vous puissiez parcourir en boucle les entrées de votre fichier. http://www.cyberciti.biz/faq/bash-for-loop/
Votre commande ressemblera à ceci, je n'ai pas de terme à côté de moi donc je ne peux pas vérifier
for i in `dir` do mv $i `echo $i | sed '/orig/new/g'`
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.