2012-06-22 5 views
8

Tengo una pregunta rápida. Solo quería saber si era un formato válido (usando scripts de shell bash) para tener un contador para un bucle en un nombre de archivo. Estoy pensando algo así como:Uso de una variable de conteo en un nombre de archivo

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

mirada a [esta] (http://www.cyberciti.biz/faq/bash-for-loop/) – higuaro

Respuesta

3

Si sólo quiere hacer un montón de archivos y no es necesario el lazo para cualquier otra cosa, puede omitir el bucle completo:

touch file{1..12}.txt 

hará que todos en un solo comando.

Si tiene Bash 4, puede obtener los ceros iniciales de esta manera:

touch file{01..12}.txt 
8

Aquí hay una demostración rápida. El comando touch actualiza la hora del último cambio en el archivo o la crea si no existe.

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

Es posible que desee añadir ceros a la izquierda para los casos en los que $i es un solo dígito:

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

Esto dará lugar a file01.txt, file02.txt, y así sucesivamente, en lugar de file1.txt, file2.txt.

+0

Buena explicación. También agregaría cómo se puede usar ">" para crear archivos y truncarlos si ya existen. – jordanm

Cuestiones relacionadas