Continuano le piccole note di bash. Stavolta vediamo un paio di facili comandi per estrarre nome file ed estensione da un path. Inserisco il tutto in un piccolo script che analizza tutti i file nella directory corrente e ne stampa prima il nome e poi l’estensione.
for file in $(ls) ; do
filename=${file##*/}
basename=${filename%\.*}
extension=${filename##*.}
echo Nome: ${basename}, estensione: ${extension}
done
Ulteriori informazioni (per i non deboli di cuore) a questo indirizzo.
Anch’io l’ho scoperto su un sito (http://bashcurescancer.com/10-steps-to-beautiful-shell-scripts.html) prima di scoprire che c’è anche nella man page di Bash. Si rivelano comodissimi, non serve passare per sed o awk per fare le operazioni principali su una variabile.
P.S. Comunque la parte ” filename=${file##*/}” puoi risparmiartela, c’è il comando “basename” che fa proprio questo.
Ciao e complimenti per il blog, ci sono un sacco di cose interessanti!