Creare uno script Bash per modificare l'estensione di un insieme di file

Creare uno script Bash per modificare l'estensione di un insieme di file

Cambiare l'estensione di un insieme di file può essere un'operazione comune, specialmente se si lavora frequentemente con file di testo, immagini, o documenti che devono essere convertiti in formati diversi. Questo processo può essere automatizzato con uno script Bash, rendendolo efficiente e veloce. In questo articolo, vedremo come creare uno script Bash che permette di modificare l'estensione di un insieme di file, passando la nuova estensione come parametro.

All'inizio del file, aggiungi la riga seguente per indicare al sistema che questo script deve essere eseguito con Bash:


#!/bin/bash

Lo script accetterà due parametri: la vecchia estensione e la nuova estensione. Aggiungi la seguente sezione per verificare che i parametri siano stati forniti:


if [ "$#" -ne 2 ]; then
    echo "Usage: $0 old_extension new_extension"
    exit 1
fi

Questa parte del codice verifica che l'utente abbia fornito esattamente due argomenti. Se non lo fa, lo script mostra un messaggio di utilizzo corretto e termina l'esecuzione.

I parametri forniti dall'utente verranno memorizzati in variabili per facilitarne l'uso:


old_extension=$1
new_extension=$2

A questo punto, possiamo implementare la logica per modificare l'estensione dei file. Lo script cercherà tutti i file con la vecchia estensione nella directory corrente e li rinominerà con la nuova estensione.


for file in *.$old_extension; do
    if [ -f "$file" ]; then
        base_name=$(basename "$file" .$old_extension)
        mv "$file" "$base_name.$new_extension"
        echo "Renamed $file as $base_name.$new_extension"
    fi
done

In questo ciclo:

  • for file in *.$old_extension scorre tutti i file che corrispondono alla vecchia estensione.
  • La variabile base_name estrae il nome del file senza l'estensione.
  • Il comando mv rinomina il file sostituendo la vecchia estensione con quella nuova.
  • Infine, viene stampato un messaggio che conferma il rinominamento di ciascun file.

Dopo aver salvato il file, rendilo eseguibile con il comando:


chmod +x change_extension.sh

Ora puoi eseguire lo script direttamente dal terminale. Supponiamo di voler cambiare l'estensione di tutti i file .txt in .md. Esegui il comando come segue:


./change_extension.sh txt md

Questo comando rinominerà tutti i file con estensione .txt nella directory corrente in .md.

Conclusione

Questo semplice script Bash è un potente strumento per automatizzare il processo di modifica delle estensioni dei file. Può essere facilmente esteso o modificato per includere ulteriori funzionalità, come operare su sottodirectory o filtrare file in base a criteri aggiuntivi. Sperimentare con Bash scripting permette di migliorare la propria efficienza e di risolvere problemi comuni in modo elegante e automatizzato.

Torna su