2012-06-22 12 views
8

Ho una domanda veloce. Volevo solo sapere se era un formato valido (usando lo script di shell bash) per avere un contatore per un ciclo in un nome di file. Sto pensando qualcosa sulla falsariga di:Utilizzo di una variabile di conteggio in un nome file

for((i=1; i <=12; i++)) 
do 
    STUFF 
    make a file(i).txt 
+0

Guardate [questo] (http://www.cyberciti.biz/faq/bash-for-loop/) – higuaro

risposta

3

Se si desidera solo fare un gruppo di file e non è necessario il loop per tutto il resto, si può saltare il ciclo del tutto:

touch file{1..12}.txt 

tutti farà in un unico comando.

Se si dispone di Bash 4, è possibile ottenere gli zeri iniziali in questo modo:

touch file{01..12}.txt 
8

Ecco una rapida dimostrazione. Il comando touch aggiorna il tempo dell'ultima modifica sul file o lo crea se non esiste.

for ((i=1; i<=12; i++)); do 
    filename="file$i.txt" 
    touch "$filename" 
done 

Si consiglia di aggiungere zeri ai casi in cui $i è solo una cifra:

for ((i=1; i<=12; i++)); do 
    filename="$(printf "file%02d.txt" "$i")" 
    touch "$filename" 
done 

Questo si tradurrà in file01.txt, file02.txt, e così via, invece di file1.txt, file2.txt.

+0

Buona spiegazione Vorrei anche aggiungere come ">" può essere usato per creare file e troncarli se esistono già. – jordanm

Problemi correlati