2011-12-23 19 views
6

Mam folder i wewnątrz tego folderu mam 10-15 plików z dowolnymi nazwami. Nazwy plików mogą zawierać spacje. Na przykład: wWw.page.com __ (576)_002. W terminalu, po naciśnięciu w, a następnie tab, nazwa pliku wygląda następująco: wWw.page.com\ \ __\ \(576\)_0.txt.Zmień nazwę wszystkich plików w folderze z rosnącymi numerami

Chcę skrypt, który zmieni nazwy wszystkich moich plików, takich jak ten 0.txt, 1.txt, 2.txt i tak dalej.

Mój problem: 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) while (<*.txt>) '' – jfs

Odpowiedz

14

Zamiast ls spróbować glob.

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

Poza tym jest '*. txt'. –

+0

I nie potrzebujesz * wewnętrznego '$' ('index = $ ((indeks + 1))' –

+0

@ MichaelKrelin-hacker Dzięki! :-) – cnicutar

Powiązane problemy