Pagina 1 di 1

Script per rinominare file da lettere MAIUSCOLE a minuscole.

Inviato: dom 15 giu 2008, 5:55
da Harp
Ciao, chiedo aiuto per uno script, visto che il mio livello é < 0!
Dovrei rinominare tutti i file di una directory da lettere maiuscole a lettere minuscole.
Per esempio HARP.EXT deve diventare harp.ext e questo per migliaia di file in una stessa directory.

Grazie a tutti anticipatamente.

Re: Script per rinominare file da lettere MAIUSCOLE a minuscole.

Inviato: dom 15 giu 2008, 8:48
da aschenaz
Terra terra:

Codice: Seleziona tutto

#!/bin/sh
#
if [ $# -lt 1 ]; then
	echo " Uso: maiumin percorso/nome-directory"
	exit 1
fi
DIRIN="$PWD"
DIRTOLOWER=$1
cd $DIRTOLOWER
for MAIU in `ls`
  do
      MINU=`echo $MAIU | tr 'A-Z' 'a-z'`
      mv $MAIU $MINU
  done
cd $DIRIN
Funziona, ma aspetta il parere di qualcuno più esperto. :)

Re: Script per rinominare file da lettere MAIUSCOLE a minuscole.

Inviato: dom 15 giu 2008, 8:57
da conraid

Re: Script per rinominare file da lettere MAIUSCOLE a minuscole.

Inviato: dom 15 giu 2008, 8:59
da conraid
aschenaz ha scritto: for MAIU in `ls`
Quando sei già nella directory basta dare

Codice: Seleziona tutto

for MAIU in *

Re: Script per rinominare file da lettere MAIUSCOLE a minuscole.

Inviato: dom 15 giu 2008, 9:49
da aschenaz
Ecco la versione corretta:

Codice: Seleziona tutto

#!/bin/sh
#
if [ $# -lt 1 ]; then
	echo " Uso: $0 percorso/nome-directory"
	exit 1
fi
DIRIN="$PWD"
DIRTOLOWER="$1"
cd $DIRTOLOWER
for MAIU in *
  do
     MINU=`echo $MAIU | tr 'A-Z' 'a-z'`
     if [ "$MAIU" != "$MINU" ]; then
	     mv $MAIU $MINU
     fi
  done
cd $DIRIN
Grazie conraid! :)

Re: Script per rinominare file da lettere MAIUSCOLE a minuscole.

Inviato: dom 15 giu 2008, 11:37
da sixjan
aschenaz ha scritto:Ecco la versione corretta:

Codice: Seleziona tutto

#!/bin/sh
#
if [ $# -lt 1 ]; then
	echo " Uso: $0 percorso/nome-directory"
	exit 1
fi
DIRIN="$PWD"
DIRTOLOWER="$1"
cd $DIRTOLOWER
for MAIU in *
  do
     MINU=`echo $MAIU | tr 'A-Z' 'a-z'`
     if [ "$MAIU" != "$MINU" ]; then
	     mv $MAIU $MINU
     fi
  done
cd $DIRIN
Grazie conraid! :)
C'è una modifica da fare per evitare problemi con i file che hanno spazi nel nome, tipo "FOO BAR.TXT"

La modifica è:

mv "$MAIU" "$MINU"

Saluti.

Re: Script per rinominare file da lettere MAIUSCOLE a minuscole.

Inviato: dom 15 giu 2008, 13:50
da aschenaz
sixjan ha scritto:C'è una modifica da fare per evitare problemi con i file che hanno spazi nel nome, tipo "FOO BAR.TXT"

La modifica è:

mv "$MAIU" "$MINU"
Giusto, gli apici: li dimentico sempre! :)

Re: Script per rinominare file da lettere MAIUSCOLE a minuscole.

Inviato: dom 15 giu 2008, 14:31
da anycolouryoulike
Attenzione, lo script può dare problemi con nomi contenenti spazi!
Bisogna aggiungere IFS=$'\t\n'.
Leggete qui: viewtopic.php?f=20&t=24946.

Re: Script per rinominare file da lettere MAIUSCOLE a minuscole.

Inviato: dom 15 giu 2008, 22:23
da anycolouryoulike
No scusate, ho detto una castroneria inusitata. Per ulteriori informazione sempre viewtopic.php?f=20&t=24946.
Grazie a spina per il chiarimento.

Re: Script per rinominare file da lettere MAIUSCOLE a minuscole.

Inviato: dom 15 giu 2008, 23:14
da Harp
Troppo "massicci"!!!
Grazie mille ragazzi!
Devo ancora provare lo script, ma già so che funzionerà!!!
Approposito, non ci sono spazi nei vari nomi dei file.
Adesso provo e vi faccio sapere!

Re: Script per rinominare file da lettere MAIUSCOLE a minuscole.

Inviato: dom 15 giu 2008, 23:41
da Harp
Eccezionale!
Funziona!!!
Ho ricevuto solamente uno strano output relativo ad un solo file, ma i file, adesso, sono perfetti!
./sminuscola ./*
./sminuscola: line 9: cd: ./GA2.ZIP: Not a directory



P.S. Che l'autore non si arrabbi se ho chiamato lo script e di conseguenza il comando SMINUSCOLA!! #-o

Re: Script per rinominare file da lettere MAIUSCOLE a minuscole.

Inviato: lun 16 giu 2008, 0:45
da targzeta
Harp ha scritto:Eccezionale!
Funziona!!!
Ho ricevuto solamente uno strano output relativo ad un solo file, ma i file, adesso, sono perfetti!
./sminuscola ./*
./sminuscola: line 9: cd: ./GA2.ZIP: Not a directory



P.S. Che l'autore non si arrabbi se ho chiamato lo script e di conseguenza il comando SMINUSCOLA!! #-o
:), hai rinominato in minuscolo tutti i file in tutte le sottodirectoroy di primo livello di quella attuale, e dato che quello era un file, lo script non è potuto entrarci dentro.
Non so se mi sono spiegato, ma hai invocato lo script passandogli come parametro tutti i file e directory della directory corrente. Lo script andava invocato come:

./sminuscola directory_che_contiene_i_file

Spina

Re: Script per rinominare file da lettere MAIUSCOLE a minuscole.

Inviato: lun 16 giu 2008, 8:20
da aschenaz
Harp ha scritto:...P.S. Che l'autore non si arrabbi se ho chiamato lo script e di conseguenza il comando SMINUSCOLA!! #-o
Io l'ho chiamato maiumin. Consolati! :lol:

Come ha detto Spina, devi lanciarlo con
./SMAIUSCOLA percorso/directory

Ciao,
nino