[gl-como] modifica nomi files - (simile a "blank to underscore" ma non so come fare)

Pirla the.pirla@flashnet.it
Mar 20 Set 2005 21:14:38 CEST


Il dom, 2005-09-18 alle 23:04, Pietro Bertera ha scritto:
> On dom, 2005-09-18 at 22:13 +0200, Cloud wrote:
> > Facciamo che io in una cartella ho i seguenti files:
> 
> 
> #!/bin/bash
> for a in $1/*
> do
>     b=`echo $a |sed -e s//a\'/g -e s//e\'/g -e s//i\'/g -e s//o\'/g
> -e s//u\'/g`
>     if [ "$a" != "$b" ]
>     then
>         c=`echo $a | sed -e s/\ /\\ /g`
>         d=`echo $b | sed -e s/\ /\\ /g`
>         mv "$c" "$d"
>     fi
> done
> 
Script ben fatto, ma ci sono due piccoli problemi.
Il primo  che le righe che iniziano con c= e d= non sembrano essere
necessarie con la bash perch il comando mv  scritto con i doppi apici.
Il trailing (mi sembra si dica cos) dello spazio non  necessario se il
nome file  racchiuso tra apici.

Inoltre non viene fatta alcuna verifica se il file destinazione esiste
gi.

Ho fatto un paio di prove e togliendo le 2 righe sopra citate e
cambiando la riga successiva in
mv "$a" "$b" funziona.

Interessante anche il confronto delle due stringhe.
Non ho fatto alcuna prova sul possibile codice di ritorno di sed, ma
penso che si possa fare il check di quello invece che confrontare le due
stringhe.
Molto pi carino, permette di interpretare eventuali errori del sed e di
sapere se  stata fatta una modifica alla stringa oppure no.
Pi veloce in caso di modifica di tante righe.

Giusto per la cronaca lo script  utilizzabile con una piccolissima
modifica anche per elaborare un file riga per riga, invece che una
directory.

Finezze, ma  anche per animare un po' le conversazioni.

Inoltre non so per quale motivo, ma io preferisco in questi casi usare
il comando tr, per TRaslare un carattere in un altro (o una serie di
caratteri in un'altra serie), quando la cosa non  molto complicata.
Se invece devo per forza scriptare, allora preferisco usare molto di pi
il Perl

________________________________________________________________________
-- 
Ciao
	Pirla

Per rispondere in E-mail the (punto) pirla (chiocciola) flashnet.it
*** un bacio ai pupi ***

---> Linux user since yesterday <---
--->     Linux User #389536     <---



Maggiori informazioni sulla lista gl-como