2012-06-22 37 views
8

Tôi có câu hỏi nhanh. Tôi chỉ muốn biết nếu nó đã được định dạng hợp lệ (sử dụng bash shell scripting) để có một truy cập cho một vòng lặp trong một tên tập tin. Tôi đang suy nghĩ điều gì đó dọc theo các dòng:Sử dụng biến số đếm trong tên tệp

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

Nhìn vào [này] (http://www.cyberciti.biz/faq/bash-for-loop/) – higuaro

Trả lời

3

Nếu bạn chỉ muốn thực hiện một loạt các tập tin và không cần vòng lặp cho bất cứ điều gì khác, bạn có thể bỏ qua vòng lặp hoàn toàn:

touch file{1..12}.txt 

sẽ làm cho họ tất cả trong một lệnh.

Nếu bạn có Bash 4, bạn có thể nhận được số không hàng đầu như thế này:

touch file{01..12}.txt 
8

Đây là một minh chứng nhanh. Lệnh touch cập nhật thời gian sửa đổi lần cuối trên tệp hoặc tạo nó nếu nó không tồn tại.

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

Bạn có thể muốn thêm zero dẫn đến các trường hợp $i là chỉ có một chữ số:

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

này sẽ dẫn đến file01.txt, file02.txt, và như vậy, thay vì file1.txt, file2.txt.

+0

Lời giải thích hay. Tôi cũng sẽ thêm cách ">" có thể được sử dụng để tạo tệp và cắt bớt chúng nếu chúng đã tồn tại. – jordanm

Các vấn đề liên quan