J'ai la liste des fichiers ci-dessous
aro_tty-mIF-45875564pmo_opt
aro_tty-mIF-45875664pmo_opt
aro_tty-mIF-45875964pmo_opt
aro_tty-mIF-45875514pmo_opt
aro_tty-mIF-45875524pmo_opt
que je dois renommer
aro_tty-mImpFRA-45875564pmo_opt
aro_tty-mImpFRA-45875664pmo_opt
aro_tty-mImpFRA-45875964pmo_opt
aro_tty-mImpFRA-45875514pmo_opt
aro_tty-mImpFRA-45875524pmo_opt
La plupart des shells standard offrent un moyen de faire une substitution de texte simple dans les variables Shell. http://tldp.org/LDP/abs/html/parameter-substitution.html explique comme suit:
${var/Pattern/Replacement}
First match of Pattern, within var replaced with Replacement.
Utilisez donc ce script pour parcourir tous les fichiers appropriés et renommer chacun d'eux:
for file in aro_tty-mIF-*_opt
do
mv -i "${file}" "${file/-mIF-/-mImpFRA-}"
done
J'ai ajouté une option -i pour que vous puissiez confirmer chaque opération de changement de nom. Comme toujours, vous devez faire une sauvegarde de tous vos fichiers avant de renommer ou de supprimer une grande quantité.
Si vous n'avez pas le rename
de Perl:
Perl -e '
FILE:for $file (@ARGV){
($new_name = $file) =~ s/-mIF-/-mImpFRA-/
next FILE if -e $new_name;
rename $file => $new_name
}' *_opt
Si vous faites avez le rename
de Perl:
rename 's/-mIF-/-mImpFRA-/' *_opt
Avant d'essayer des commandes complexes comme les suivantes, sauvegardez vos fichiers. Vous ne savez jamais ce qu'une faute de frappe (la mienne ou la vôtre) peut causer.
Avec mv
(comme vous l'avez demandé dans le commentaire --- rename
comme suggéré dans l'autre réponse est probablement plus sûr, surtout si vous pouvez avoir des espaces ou des caractères étranges dans vos noms de fichiers) quelque chose du style
for f in *_opt; do
a="$(echo $f | sed s/-mIF-/-mImpFRA-/)"
mv "$f" "$a"
done