Pagina 2 di 2
Re: rinominare file...
Inviato: sabato 18 dicembre 2010, 13:23
da VeonIlongamor
No no, è una cosa che sarà molto utile.
Appena produci uno script me lo copio subito! Ahaha

è che non si sa mai cosa può servirti e avere qualcosa di pronto fa sempre bene.
Pensa che ieri sono impazzito due ore per fare uno script dove inserisco due variabili e lui le mette nel posto giusto in una riga di comando così non devo riscrivere ogni volta la riga di comando.
Per uno che non sa una mazza di script è un buon risultato.
Allora, dalle risposte che hai dato l'unico ostacolo grande mi pare il fatto che potrebbero esserci altri numeri all'interno dei nomi, oltre quelli da spostare. Altrimenti il comando di delmos mi sembrava già ottimo. Per caso l'hai provato su dei file di test?
Re: rinominare file...
Inviato: sabato 18 dicembre 2010, 13:27
da CyberBonfa
ooohhh... (good)
Grande! Bello il "manualetto"!!!
Adesso inizio..
Re: rinominare file...
Inviato: sabato 18 dicembre 2010, 13:40
da VeonIlongamor
Ho creato una cartella di test con dentro 4 files assortiti tipo
file_1234_file_file.txt
grt_4567_komkl_89_mn_oiu.txt
etc
ho provato il comando suggerito da delmos ed ha funzionato egregiamente come previsto:
il file file_1234_file_file.txt è diventato filefile_file_1234.txt
il file grt_4567_komkl_89_mn_oiu.txt è diventato grtkomkl_89_mn_oiu_4567.txt.
Forse si potrebbe solo opinare per il _ scomparso quando i numeri vengono spostati.
Re: rinominare file...
Inviato: sabato 18 dicembre 2010, 13:49
da CyberBonfa
sui file confermo...
la sto provando ora su delle directory ma non mi funziona... credo lo script si blocchi perchè non esce mai il prompt...
mi tocca fare un ctrl-C
per quanto riguarda l'underscore non credo sia un problemone, al limite si cambia un po la stringa di uscita... tipo $1$3$2_
ma mi va bene anche così, perchè alla fine in effetti poi io lo toglierei e finirei solo col numero da 4 cifre!
Per il problema "se sono presenti anche altri numeri nel nome" vedo che non ci sono problemi in quanto (.*) legge qualsiasi carattere!
Beh, direi che posso inserire [Risolto]...
Prima però vorrei aspettare un po' per vedere se riesco a far funzionare sta cosa anche sulle directory!
>:( >:(
Re: rinominare file...
Inviato: sabato 18 dicembre 2010, 13:52
da deimos
se noti "(_\d{4})_" l'underscore l'ho lasciato fuori cosicchè è escluso nella sostituzione
per il trattino opinabile, basta metterlo dentro alle parentesi così "(_\d{4}_)"
il file grt_4567_komkl_89_mn_oiu.txt è diventato grtkomkl_89_mn_oiu_4567.txt
per più occorrenze dei numeri penso sia sufficiente rilanciare il comando
e se percaso ci fosse un numero variabile di cifre, mi pare si possa sostituire
(_\d{4})
con
(_\d{1,})
che prende una o più cifre
Re: rinominare file...
Inviato: sabato 18 dicembre 2010, 13:54
da CyberBonfa
esatto!
l'unico inconveniente, secondo me, è se ci sono 2 coppie di numeri da 4 cifre nel nome...
ma in questo caso per 1 sola ricorrenza lo faccio a mano...
Re: rinominare file...
Inviato: sabato 18 dicembre 2010, 14:50
da CyberBonfa
le directory proprio non le fa... mi sa che è rename che non le gestisce giusto?
per i file confermo che funziona tutto egreggiamente!
volendo aggiungere una chicca... ho provato ma non ci sono riuscito...
se io avessi anche l'estensione variabile?
esempio.. .jpg .mp3 .avi
e tutte le regole x i nomi dei file restassero quelle...
volendo si riesci ad aggiungere una $4 per l'estensione?
ho provato aggiungento .(.*) a fine stringa ma non me la prende
Re: rinominare file...
Inviato: sabato 18 dicembre 2010, 15:31
da deimos
le directory proprio non le fa... mi sa che è rename che non le gestisce giusto?
si, solo files. Per rinominare anche le directory bisognerebbe implementare una cosa del genere usando mv:
ls *.* | sed "regexp" | sh
ma è un po' più complicato, magari stasera mi ci metto
per aggiungere un'estensione variabile il comando è:
rename -nv 's/^(.*)(_\d{1,})_(.*)\.(.*)$/$1$3$2.$4/' *.*
il problema di prima era che con
Codice: Seleziona tutto
rename -v 's/^(.*)(_\d{4})_(.*).xxx$/$1$3$2.xxx/' *.xxx
^
^
quel punto è considerato come un comando regExp, con la barra davanti (come sopra), lo considera giustamente come carattere
Re: rinominare file...
Inviato: sabato 18 dicembre 2010, 16:04
da CyberBonfa
ah cavoli!
... ma io ho guardato nel link che riportavi sopra... c'è molto ma secondo me mancano le basi.. ad esempio questa, che mi dica che la barra in questo caso significa che intende il carattere...
sto cercando su google ma non trovo nulla di decente!
per le directory lascia non preoccuparti... non diventare matto!
Re: rinominare file...
Inviato: sabato 18 dicembre 2010, 16:11
da deimos
beh, è calato il sole
questo per i file
ls -d *.* | sed "s/\(.*\)\(_[0-9]\{1,\}\)_\(.*\)\.\(.*\)/mv & \1\3\2\.\4/" | sh
togli il " | sh " finale per fare le prove
per le dir
Codice: Seleziona tutto
ls -d */ | sed "s/\(.*\)\(_[0-9]\{1,\}\)_\(.*\)\//mv & \1\3\2/" | sh
qui ho solo rimosso la parte dell'estensione
per le directory lascia non preoccuparti... non diventare matto!
troppo tardi

... son già matto

Re: rinominare file...
Inviato: sabato 18 dicembre 2010, 16:15
da CyberBonfa
.............beh........ [Risolto]
.....eh ma cakkio voglio farle anch'io ste cose...
col pascal ho fatto di tutto... ho finito le scuole... ho mezzo abbandonato..
ed ora sono una capra! >:(
Voglio un manualetto dove mi spieghi i parametri, la | la \ il punto la virgola e tutto il resto uffa!!
grazie mille deimos!!!
Re: [Risolto] rinominare file...
Inviato: sabato 18 dicembre 2010, 16:29
da CyberBonfa