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

Cloud marforio@gmail.com
Mer 21 Set 2005 00:09:56 CEST


Pirla wrote:

>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
>
>  
>
Beh, le tue osservazioni sono giuste... Il codice pero' mi ha 
funzionato, ne avevo bisogno urgente (dovevo modificare files in nmolte 
directory) e quindi l'ho usato cosi' come era :) E ringrazio l'autore :)

ciop ciop


Maggiori informazioni sulla lista gl-como