Newsgroup: it.comp.os.linux.iniziare
Titolo: rinominare più file

Ciao a tutti,
avrei bisogno di un comando per rinominare molti file tipo togliere i # 
dai nomi di un migliaio di file.
Grazie


for nome in *; do
	mv $nome $(echo $nome | awk '{gsub("#",""); print;}'
done
o qualcosa del genere.
-- 
Massimo Bacilieri AKA Crononauta

 o qualcosa del genere.
Scusa, manca una parentesi chiusa alla fine della riga del mv:
mv $nome $(echo $nome | awk '{gsub("#",""); print;}')


Davide Cavedini wrote:

man rename
man mmv
dovresti avere almeno uno dei due installato.
-- 
Cio' che si vede, e'.

dai nomi di un migliaio di file.
Installati util-linux, li' c'e' rename che e' fatto apposta 
per fare quello che dici.
-- 
Saluti, Dalet



scusa??? soono un principiante e non pensavo ci fosse un comando tanto 
complicato! Io devo togliere gli asterischi dai file della cartella /home/
UTENTE/rubrica/
mi puoi venire in contro?
grazie!



		Dimenticavo... sono cieco e la sintesi vocale in inglese 
non la capisco: non potresti cortesemente darmi il comando che copio e 
incollo?
grazie

 mi puoi venire in contro?
lo ha fatto.. ti ha dato la sintassi
ti copi i file da qualche parte e provi
S.

incollo?
Per darti la riga di comando corretta, devi scrivermi il nome
esatto di almeno due dei tuoi file, come sono e come devono
diventare.
Altrimenti io rischio di farti fare un disastro.
-- 
Saluti, Dalet

 mi puoi venire in contro?
Se scrivi quel comando mentre sei in /home/UTENTE/rubrica, fa 
esattamente quello che vuoi.
BTW come hai fatto ad avere dei nomi file con l'asterisco?! O hai detto 
"asterisco" ma ti riferivi al "cancelletto"? Occhio perché se lanci un 
comando su un nome file contenente un asterisco, rischi di fare un 
disastro...


rename 's/pattern di ricerca/pattern di sostituzione/' files
Conviene aggiungere -v -n perche' cosi' non rischia nulla,
l'opzione -n fa fare solo una simulazione e -v fa scrivere
come verranno rinominati, cioe':
rename -v -n 's/pattern di ricerca/pattern di sostituzione/' files
Comunque non e' sempre facile azzeccare la giusta riga se non
si conosce il perl.
-- 
Saluti, Dalet



sì, volevo dire cancelletto ma guarda cosa mi da
sun1968@sun1968:~/rubrica 2$ mv $nome $(echo $nome | awk '{gsub("#",""); 
print;}')
mv: manca il file operando
Usare «mv --help» per ulteriori informazioni.


Non riesce a risolverti il comando che costrisce il nome di destinazione del 
file. Temo tu non abbia awk installato
Ciao
-- 
 ************** (.)_(.)  **************
 Un amico è uno che sa tutto di te e,
 nonostante questo, gli piaci
(E. Hobbard)
http://www.youtube.com/user/Nameci65
 


Con gnome io ho Gprename che ha una interfaccia grafica, per kde ne 
esiste uno analogo. Se non vuole usare la riga di comando puo usare 
quelli o simili.
X


Facebook: Massimo Bacilieri

chrome://messenger/locale/messengercompose/composeMsgs.properties:

  Mancano anche le virgolette.  Se qualche file ha degli spazi non funziona:
$ touch uno due "tre & quattro"
$ ll
totale 0
-rw-r--r-- 1 alessandro alessandro 0 18 set 09.55 due
-rw-r--r-- 1 alessandro alessandro 0 18 set 09.55 tre & quattro
-rw-r--r-- 1 alessandro alessandro 0 18 set 09.55 uno
$ for nome in *; do echo "Trovato file $nome" ; done
Trovato file due
Trovato file tre & quattro
Trovato file uno
  Ma:
$ for nome in *; do mv $nome $(echo $nome | tr '[aeiou]' '[12345]') ; done
/bin/mv: l'obiettivo "q51ttr4" non è una directory
$ ll
totale 0
-rw-r--r-- 1 alessandro alessandro 0 18 set 09.55 5n4
-rw-r--r-- 1 alessandro alessandro 0 18 set 09.55 d52
-rw-r--r-- 1 alessandro alessandro 0 18 set 09.55 tre & quattro
  Va fatto allora:
# Rimettiamo tutto com'era prima:
$ mv 5n4 uno ; mv d52 due
$ ll
totale 0
-rw-r--r-- 1 alessandro alessandro 0 18 set 09.55 due
-rw-r--r-- 1 alessandro alessandro 0 18 set 09.55 tre & quattro
-rw-r--r-- 1 alessandro alessandro 0 18 set 09.55 uno
$ for nome in *; do mv "$nome" "$(echo $nome | tr '[aeiou]' '[12345]')"
; done
$ ll
totale 0
-rw-r--r-- 1 alessandro alessandro 0 18 set 09.55 5n4
-rw-r--r-- 1 alessandro alessandro 0 18 set 09.55 d52
-rw-r--r-- 1 alessandro alessandro 0 18 set 09.55 tr2 & q51ttr4
  Inoltre, l'uso di awk per fare un lavoro tanto banale quanto
cancellare un carattere "#" è come usare il motore di una BMW dentro una
FIAT 500.  O fai fare tutto il lavoro ad awk, oppure usi qualcosa di più
semplice come tr o al limite sed per fare questo semlice lavoro.
  Ciao,
-- 
Alessandro Selli 
http://alessandro.route-add.net
AVVERTENZA: i messaggi inviati a "trappola" non mi arriveranno.
WARNING: messages sent to "trappola" will never reach me.

 esiste uno analogo
Krename ;)
-- 
Archlinux on (uname -a)
F

 semplice come tr o al limite sed per fare questo semlice lavoro.
Io credo che uno sia autorizzato ad utilizzare gli strumenti che meglio
conosce, senza preclusioni, se con quelli risolve il problema.
L'importante è che lo strumento permetta di risolvere il problema con
semplicità, e in questo caso awk lo fa (due istruzioni su una riga!).
L'idea che per questi casi si *debba* utilizzare tr o sed piuttosto che
awk mi sembra più filosofico che pratico, onestamente.
-- 
Massimo Bacilieri AKA Crononauta 


 awk mi sembra più filosofico che pratico, onestamente.
  Ho forse scritto che si *debba* fare le cose come voglio io?  Io ho fatto
un appunto tecnico motivandolo.  Poi ovviamente ognuno fa le cose come vuole
e crede, incluso svriversi un programma in Mono o in Java per rinominare più
file.
  Ciao,
-- 
Alessandro Selli, 
http://alessandro.route-add.net
AVVERTENZA: i messaggi inviati a "trappola" non mi arriveranno.
WARNING: messages sent to "trappola" will never reach me.
Chiave PGP/GPG: EC885A8B