Dunque, c'è un problema.
Se io ho un file ìr.txt ed eseguo il seguente comando da shell:
codice:
sergej[Prova]$ for i in *; do mv "$i" `echo $i | tr -s 'ì' 'i'`; done 2>/dev/null
il file viene rinominato in ir.txt.
Se invece eseguo lo script completo, mi trasforma il file in eir.txt.
Ecco il codice completo:
codice:
#!/bin/sh
# per per eliminare caratteri:
for i in *; do mv "$i" `echo $i | tr -d '"'`; done 2>/dev/null
for i in *; do mv "$i" `echo $i | tr -d '''`; done 2>/dev/null
for i in *; do mv "$i" `echo $i | tr -d '('`; done 2>/dev/null
for i in *; do mv "$i" `echo $i | tr -d ')'`; done 2>/dev/null
for i in *; do mv "$i" `echo $i | tr -d '{'`; done 2>/dev/null
for i in *; do mv "$i" `echo $i | tr -d '}'`; done 2>/dev/null
for i in *; do mv "$i" `echo $i | tr -d '\'`; done 2>/dev/null
for i in *; do mv "$i" `echo $i | tr -d '?'`; done 2>/dev/null
for i in *; do mv "$i" `echo $i | tr -d '&'`; done 2>/dev/null
for i in *; do mv "$i" `echo $i | tr -d '='`; done 2>/dev/null
for i in *; do mv "$i" `echo $i | tr -d '~'`; done 2>/dev/null
for i in *; do mv "$i" `echo $i | tr -d '!'`; done 2>/dev/null
for i in *; do mv "$i" `echo $i | tr -d '%'`; done 2>/dev/null
for i in *; do mv "$i" `echo $i | tr -d '<'`; done 2>/dev/null
for i in *; do mv "$i" `echo $i | tr -d '>'`; done 2>/dev/null
for i in *; do mv "$i" `echo $i | tr -d '*'`; done 2>/dev/null
for i in *; do mv "$i" `echo $i | tr -d '&'`; done 2>/dev/null
for i in *; do mv "$i" `echo $i | tr -d '&'`; done 2>/dev/null
for i in *; do mv "$i" `echo $i | tr -d '&'`; done 2>/dev/null
# script per sostituire i caratteri:
for i in *; do mv "$i" `echo $i | tr -s 'à' 'a'`; done 2>/dev/null
for i in *; do mv "$i" `echo $i | tr -s 'è' 'e'`; done 2>/dev/null
for i in *; do mv "$i" `echo $i | tr -s 'é' 'e'`; done 2>/dev/null
for i in *; do mv "$i" `echo $i | tr -s 'ì' 'i'`; done 2>/dev/null
for i in *; do mv "$i" `echo $i | tr -s 'ò' 'o'`; done 2>/dev/null
for i in *; do mv "$i" `echo $i | tr -s 'ù' 'u'`; done 2>/dev/null
for i in *; do mv "$i" `echo $i | tr -s ' ' '_'`; done 2>/dev/null
Dove è l'errore?
Sergej