La maggior parte delle shell standard fornisce un modo per eseguire semplici sostituzioni di testo all'interno delle variabili di shell. http://tldp.org/LDP/abs/html/parameter-substitution.html spiega quanto segue:
${var/Pattern/Replacement}
First match of Pattern, within var replaced with Replacement.
Quindi usa questo script per scorrere tutti i file appropriati e rinominare ciascuno di essi:
for file in aro_tty-mIF-*_opt
do
mv -i "${file}" "${file/-mIF-/-mImpFRA-}"
done
Ho aggiunto un'opzione -i in modo da avere la possibilità di confermare ogni operazione di ridenominazione. Come sempre, dovresti eseguire un backup di tutti i tuoi file prima di eseguire qualsiasi operazione di ridenominazione o eliminazione.
Se non hai rename
di Perl :
perl -e '
FILE:for $file (@ARGV){
($new_name = $file) =~ s/-mIF-/-mImpFRA-/
next FILE if -e $new_name;
rename $file => $new_name
}' *_opt
Se lo fai hanno il rename
di Perl :
rename 's/-mIF-/-mImpFRA-/' *_opt
Prima di provare comandi complessi come i seguenti, esegui il backup dei tuoi file . Non sai mai cosa può causare un errore di battitura (mio o tuo).
Con mv
(come hai chiesto nel commento --- rename
come suggerito nell'altra risposta è probabilmente più sicuro, specialmente se puoi avere spazi o strani caratteri nei nomi dei tuoi file) qualcosa dello stile
for f in *_opt; do
a="$(echo $f | sed s/-mIF-/-mImpFRA-/)"
mv "$f" "$a"
done