[TiLUG] rinominare in serie file

Matteo D'Alfonso werewolf@linux.it
Sab 30 Set 2006 16:14:25 CEST


Ciao a tutti,
espongo un problema che ho già risolto per avere memoria in rete e far
vedere le potenzialità della shell.

Problema:
Molti file, tutti in un'unica cartella, con questa struttura
"01.blabla.mp3", in cui il terzo carattere è sempre un punto, e va
sostituito con il carattere meno.

Soluzione:
All'inizio pensavo di appoggiarmi esclusivamente alla shell e alle
coreutils con questo comando
$ for i in *; do mv $i $(echo $i | tr . -); done

Senonché "tr" traduce fino a fine stringa, non fermandosi alla prima
occorrenza. Ottenevo infatti "01-blabla-mp3"

Ho risolti usando quindi sed
$ for i in *; do mv $i $(echo $i | sed -e s/[.]/-/); done

Le parentesi quadre servono per evitare che sed interpreti il punto come
carattere speciale, normalmente infatti significa "tutti i caratteri".

Alla prossima,
Matteo alias Werewolf

P.S. shell power!
-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome:        non disponibile
Tipo:        application/pgp-signature
Dimensione:  191 bytes
Descrizione: Questa =?ISO-8859-1?Q?è?	firmata digitalmente
Url:         http://lists.linux.it/pipermail/tilug/attachments/20060930/592faedd/attachment.pgp


Maggiori informazioni sulla lista Tilug