La mayoría de los shells estándar proporcionan una forma de realizar una sustitución de texto simple dentro de las variables del shell. http://tldp.org/LDP/abs/html/parameter-substitution.html explica lo siguiente:
${var/Pattern/Replacement}
First match of Pattern, within var replaced with Replacement.
Así que use este script para recorrer todos los archivos apropiados y cambiar el nombre de cada uno de ellos:
for file in aro_tty-mIF-*_opt
do
mv -i "${file}" "${file/-mIF-/-mImpFRA-}"
done
He agregado una opción -i para que tenga la oportunidad de confirmar cada operación de cambio de nombre. Como siempre, debe hacer una copia de seguridad de todos sus archivos antes de cambiar el nombre o eliminar una gran cantidad.
Si no tiene 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 haces tener rename
de Perl :
rename 's/-mIF-/-mImpFRA-/' *_opt
Antes de probar comandos complejos como los siguientes, haga una copia de seguridad de sus archivos . Nunca se sabe lo que puede causar un error tipográfico (el mío o el tuyo).
Con mv
(como pediste en el comentario --- rename
como se sugiere en la otra respuesta, probablemente sea más seguro, especialmente si puede tener espacios o caracteres extraños en sus nombres de archivo) algo del estilo
for f in *_opt; do
a="$(echo $f | sed s/-mIF-/-mImpFRA-/)"
mv "$f" "$a"
done