GNU/Linux >> Linux Esercitazione >  >> Linux

Come rinominare più file in un singolo comando o script in Unix?

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

Linux
  1. Come rinominare i file in Linux

  2. Come eseguire un comando singolo su più sistemi remoti contemporaneamente

  3. Come rinominare più file usando Trova?

  4. Come rinominare più file contemporaneamente in Linux

  5. Come rinominare più file insieme in Linux usando 3 metodi

Come rinominare i file in Linux

Rinomina comando in Linux (rinomina più file)

Come rinominare uno o più file in Linux

Come rinominare file e directory in Ubuntu 20.04

Come eseguire più comandi Linux in un unico comando

comando ls in Linux/UNIX