La plupart des shells standard fournissent un moyen de faire une simple substitution de texte 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 ayez la possibilité de confirmer chaque opération de renommage. Comme toujours, vous devez faire une sauvegarde de tous vos fichiers avant de renommer ou de supprimer une grande quantité de fichiers.
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 avoir le rename
de Perl :
rename 's/-mIF-/-mImpFRA-/' *_opt
Avant d'essayer des commandes complexes telles que 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é en 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