2012-06-22 13 views
8

Mam krótkie pytanie. Chciałem tylko wiedzieć, czy był to poprawny format (używając skryptów powłoki bash), aby mieć licznik pętli w nazwie pliku. Mam na myśli coś podobnego:Używanie zmiennej licznika w nazwie pliku

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

Spójrz na [to] (http://www.cyberciti.biz/faq/bash-for-loop/) – higuaro

Odpowiedz

3

Jeśli chcesz tylko zrobić kilka plików i nie potrzebują pętli na nic innego, można pominąć pętlę sumie:

touch file{1..12}.txt 

uczyni je wszystkie w jednym poleceniu.

Jeśli masz Bash 4, można uzyskać prowadząc zera tak:

touch file{01..12}.txt 
8

Oto krótka demonstracja. Komenda touch aktualizuje czas ostatniej modyfikacji pliku lub tworzy go, jeśli nie istnieje.

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

Możesz dodać zer do przypadków, w których $i jest tylko jedna cyfra:

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

To spowoduje file01.txt, file02.txt, i tak dalej, zamiast file1.txt, file2.txt.

+0

Dobre wytłumaczenie. Dodałbym również, w jaki sposób można ">" tworzyć pliki i skracać je, jeśli już istnieją. – jordanm

Powiązane problemy