Pagina 1 di 1
Script per rinominare files con estensioni particolari
Inviato: sab 16 ott 2004, 17:28
da h8er
ciao devo rinominare dei file con estensioni particolari del tipo .ext"spazio" in .ext (ma anche altre) poichè altrimenti non sarebbero gestibili sotto fat32; ho scritto una cosa del genere
<BR>
<BR>#!/bin/bash
<BR>
<BR>for filename in *$1
<BR>do
<BR> mv $filename ${filename%$1}
<BR>done
<BR>
<BR>exit 0
<BR>
<BR>ma come si passa come parametro il carattere "spazio" allo script ??
<BR>
<BR>sono alle prime armi con gli script per cui abbiate pietà
<BR>
<BR>ciao e grazie<BR><BR>[ Questo Messaggio è stato Modificato da: h8er il 16-10-2004 18:07 ]<br>
Script per rinominare files con estensioni particolari
Inviato: sab 16 ott 2004, 18:34
da goodchild
allo stesso modo che in console, ovvero:
<BR>\
<BR>(ovvero "\" e spazio)<br>
Script per rinominare files con estensioni particolari
Inviato: sab 16 ott 2004, 18:57
da h8er
cioè ammettendo che lo script si chiami "renext" devo digitare da console:
<BR>
<BR>renext \"spazio"
<BR>
<BR>giusto ?? se faccio così però mi appare questo messaggio di errore:
<BR>
<BR>mv: cannot stat `nomefile.ext´: No such file or directory
<BR>mv: `renext´ and `renext´ are the same file
<BR>
<BR>dove sbaglio ?? magari lo script non va bene ? non riesco proprio a capire, lo script funziona perfettamente con estensioni normali, il problema lo da solamente se l´estensione termina con uno spazio... che sia un problema del comando mv ??<BR><BR>[ Questo Messaggio è stato Modificato da: h8er il 16-10-2004 19:30 ]<br>
Script per rinominare files con estensioni particolari
Inviato: sab 16 ott 2004, 19:44
da goodchild
prova a mettere
<BR>mv "$filename" "${filename%$1}"
<BR>
<BR>non sono in questo momento sotto linux e quindi non posso provare ...<br>
Script per rinominare files con estensioni particolari
Inviato: sab 16 ott 2004, 21:20
da h8er
dopo innumerevoli tentativi per capire cosa fosse che non andasse ho scoperto che la mv non accetta comandi che abbiano spazi alla fine per cui mi sono ingegnato un po´:
<BR>
<BR>dato che non si può fare nulla del tipo mv nome.ext(spazio) nome.ext per fortuna si può fare una mv nome.ext"spazio" nome.ext cioè mettendo lo spazio tra le virgolette; di conseguenza ho modificato lo script in modo che metta ste maledette viroglette:
<BR>
<BR>#!/bin/bash
<BR>
<BR>for filename in *"$1"
<BR>
<BR>do
<BR> var=${filename%$1}
<BR> mv $var"$1" ${filename%$1}
<BR>done
<BR>
<BR>exit 0
<BR>
<BR>e questo funziona alla perfezione... lo testerò se funziona anche per tutti gli altri tipi di estensione.. spero che la fatica fottuta che ho fatto per scrivere sto script possa servire a qualcuno (specialmente a chi usa gli ftp

) almeno ad evitarsi un pomeriggio di frustrazione...
<BR>
<BR>ciao
<BR><br>