2011-12-23 38 views
6

Ho una cartella e all'interno di quella cartella ho 10-15 file con nomi arbitrari. I nomi file possono includere spazi in essi. Ad esempio: wWw.page.com __ (576)_002. In un terminale, quando si preme w e quindi tab, il nome del file appare così: wWw.page.com\ \ __\ \(576\)_0.txt.Rinomina tutti i file nella cartella con numeri crescenti

Desidero qualche script che rinomini tutti i miei file come questo 0.txt, 1.txt, 2.txt e così via.

Il mio problema è: wWw.page.com __ (576)_002.txt file not found.

index=0; 
for i in $(ls *.txt) 
do 
    cp "${i}" $index".txt" 
done 
+1

'perl -e'rename $ _, $ i ++ q (.txt), mentre (<*.txt>) '' – jfs

risposta

14

Invece di cercare di lsglob:.

index=0; 
for name in *.txt 
do 
    cp "${name}" "${index}.txt" 
    index=$((index+1)) 
done 
+0

Fatta eccezione per la sua '*. txt'. –

+0

E non * bisogno * di inner '$' ('index = $ ((index + 1))') –

+0

@ MichaelKrelin-hacker Grazie! :-) – cnicutar

Problemi correlati