[linux] Rinominare i file da terminale con bash sostituendo uno o più caratteri nel nome

Immaginiamo di voler sostituire un particolare carattere nel nome dei file dentro ad una cartella. Nel mio caso in tutti i nomi è presente una @ che voglio trasformare in uno _.

Utilizzando semplici comandi di bash è possibile fare questa operazione da terminale nel modo seguente:

 

Vedi articolo

Operazioni elementari sui file con Bash

Anzitutto vediamo come creare una serie di file vuoti in bash, utilizzando il commando touch.

Adesso proviamo a rinominare i file creati (cambiando l’estensione da *.txt a *.log), tenendo a mente i seguenti modificatori fondamentali:

#: sottrae dall’inizio della stringa (minimale)

%: sottrae dalla fine della stringa (minimale)

: sostituisce una sottostringa con un altra (solo la prima volta che viene incontrata)

Infine mettiamo insieme il tutto in un piccolo eseguibile che, una volta richiamato, permette di modificare l’estensione di tutti i file da ext1 a ext2.

Il programma in questione accetta come argomento le due estensioni da modificare, qualora non vengano forniti esattamente due argomenti segnala all’utente l’utilizzo corretto. Dopodiché passa in rassegna, nella sua cartella di appartenenza tutto i file con estensione ext1 e li modifica all’estensione ext2.

Vedi articolo