GNU/Linux >> Linux Esercitazione >  >> Linux

Linux Rinomina estensione file multipli

Possiamo usare mv comando per modificare il nome del file. Possiamo usarlo per cambiare anche l'estensione del file. Ma funziona solo con un singolo file e non richiede caratteri jolly.

Possiamo creare uno script di shell per modificare l'estensione di più file contemporaneamente.

Script della shell Linux per modificare l'estensione di più file

Diamo un'occhiata al codice dello script in cui utilizzeremo il comando mv in un ciclo for per modificare l'estensione di tutti i file nella directory corrente.

#!/bin/sh

#Save the file as multimove.sh

IFS=$'\n'

if [ -z "$1" ] || [ -z "$2" ]
then
  echo "Usage: multimove oldExtension newExtension"
  exit -1
fi
# Loop through all the files in the current directory
# having oldExtension and change it to newExtension
for oldFile in $(ls -1 *.${1})
do
# get the filename by stripping off the oldExtension
  filename=`basename "${oldFile}" .${1}`
# determine the new filename by adding the newExtension
# to the filename
  newFile="${filename}.${2}"
# tell the user what is happening
  echo "Changing Extension \"$oldFile\" --> \"$newFile\" ."
mv "$oldFile" "$newFile"
done

Utilizzo :multimove.sh doc txt (per cambiare tutti i .doc in .txt)

Test dello script Rename Shell

Di seguito è riportato l'output di esempio dall'esecuzione del programma sopra.

$ ls
abc.txt		hi.doc		journaldev.doc	multimove.sh
$ ./multimove.sh doc txt
Changing Extension "hi.doc" --> "hi.txt" .
Changing Extension "journaldev.doc" --> "journaldev.txt" .
$ ls
abc.txt		hi.txt		journaldev.txt	multimove.sh
$ ./multimove.sh txt doc
Changing Extension "abc.txt" --> "abc.doc" .
Changing Extension "hi.txt" --> "hi.doc" .
Changing Extension "journaldev.txt" --> "journaldev.doc" .
$ ls
abc.doc		hi.doc		journaldev.doc	multimove.sh
$ 

Presupposti e limitazioni dello script

  1. I file hanno un solo punto (.)
  2. Scorre in loop solo tutti i file nella directory corrente. Tuttavia, puoi estenderlo per cercare i file anche nelle directory figlio.
  3. Gli spazi bianchi nel nome del file possono causare un problema con lo script. Ha funzionato sul mio sistema con nomi di file con spazi ma non posso garantire che funzionerà anche per te.

Ulteriori letture: Comando Linux mv


Linux
  1. Come modificare l'estensione di più file?

  2. Come rinominare più file usando Trova?

  3. Come rinominare più file contemporaneamente in Linux

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

  5. Linux:rimuovi le estensioni di file per più file

Come rinominare file e directory in Linux

Rinomina comando in Linux (rinomina più file)

Come rinominare i file usando la riga di comando in Linux

Come rinominare uno o più file in Linux

8 metodi per rinominare più file contemporaneamente in Linux

Come rimuovere file con estensione specifica in Linux