[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