Consenso all'uso dei cookies

SITO1 -- SITO2 -- Forum2 -- CercaGlobale -- Informativa su Cookie e Privacy

Questo Forum1 è in sola lettura -- Usa il Forum2


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
Sostituire gli spazi nei nomi dei file con underscore
#1
Capita spesso di avere problemi quando in una cartella ci sono file con spazi all'interno del nome, basta avviare questo script all'interno della cartella ed i file vengono rinominati
Codice:
#!/bin/bash
for FILE in *
do
  NUOVONOME=${FILE// /_} # sostituisce lo spazio con _
# echo $NUOVONOME
  mv "$FILE" $NUOVONOME # rinomina il file
done
potete provare l'efficacia dello script commentando la riga con mv e scommentando quella con echo
non allarmatevi dei messaggi di avvertimento relativi ai nomi senza spazi che non vengono rinominati.
Un titolo ben azzeccato attira l'attenzione degli esperti in quel campo, fa risparmiare tempo a voi, aumenta la probabilità di successo.
Cita messaggio
#2
lo script precedente è piuttosto rudimentale, lavorandoci un po' sopra si ottiene il seguente:
Codice:
#!/bin/bash
# sostituisce gli spazi con underscore in tutti i file di una cartella
num=0  
echo Sono stati rinominati :
for FILE in *
do
     echo "$FILE" | grep -q " "  #  controlla se ci sono spazi nel nome
     if [ $? -eq 0 ]             # se ci sono
     then
        NUOVONOME=${FILE// /_}  # sostituzione dello spazio con _
        mv "$FILE" $NUOVONOME  # rinomina il file
        echo $NUOVONOME  # lo visualizza
        let "num += 1"  # incrementa il contatore
     fi
done
echo $num file
che rinomina soltanto i file con gli spazi nel nome, li visualizza e li conta
Un titolo ben azzeccato attira l'attenzione degli esperti in quel campo, fa risparmiare tempo a voi, aumenta la probabilità di successo.
Cita messaggio
#3
Blush
[Immagine: http://pclinuxos.com/forum/avatars/Pengu...guitux.png] Parole !
Mai che se ne trovino due uguali !
Cita messaggio
#4
salve a tutti. ho utilizzato il secondo script di patel per un lavoro un po' più complesso, anche se concettualmente stiamo applicando esattamente lo stesso criterio cioè sostituire delle "stringhe". capita che per esempio fate le foto delle vacanze e la vostra macchina fotografica digitale vi numeri progressivamente i file così: img_123, img_124, ...
usando il secondo script, se volessi sostituire a img_ la parola vacanze2012, si dovrebbe modificare così:
Codice:
#!/bin/bash
# sostituisce gli spazi con underscore in tutti i file di una cartella
num=0  
echo Sono stati rinominati :
for FILE in *
do
     echo "$FILE" | grep -q "img_"  #  controlla se ci sono spazi nel nome
     if [ $? -eq 0 ]             # se ci sono
     then
        NUOVONOME=${FILE//img_/vacanze2012}  # sostituzione dello spazio con _
        mv "$FILE" $NUOVONOME  # rinomina il file
        echo $NUOVONOME  # lo visualizza
        let "num += 1"  # incrementa il contatore
     fi
done
echo $num file
volontariamente non ho modificato i commenti di patel (dopo il simbolo #) per evidenziare le modifiche.
ciao
 Trasferito sul Nuovo Forum [img]images/smilies/blush.gif[/img]
Cita messaggio
#5
Ci sarebbe anche rename:
Codice:
rename " " _ *

Che più veloce di così si muore.
[Immagine: http://pclinuxos.com/forum/avatars/Pengu...guitux.png] Parole !
Mai che se ne trovino due uguali !
Cita messaggio
#6
IdeaIdeaIdea
Un titolo ben azzeccato attira l'attenzione degli esperti in quel campo, fa risparmiare tempo a voi, aumenta la probabilità di successo.
Cita messaggio
#7
@zafran: come funziona? è un comando da dare al terminale?

@patel: ciao, è un piacere vederti sul forum.
 Trasferito sul Nuovo Forum [img]images/smilies/blush.gif[/img]
Cita messaggio
#8
Grazie giuscassr
è un comando da dare al terminale dopo essersi posizionati nella cartella che contiene i file da rinominare
Un titolo ben azzeccato attira l'attenzione degli esperti in quel campo, fa risparmiare tempo a voi, aumenta la probabilità di successo.
Cita messaggio
#9
lo proverò, grazie!
 Trasferito sul Nuovo Forum [img]images/smilies/blush.gif[/img]
Cita messaggio


Vai al forum:


Utenti che stanno guardando questa discussione: 1 Ospite(i)