Giải pháp vỏ POSIX
Giải pháp đầu tiên của terdon dựa vào việc mở rộng niềng răng , vốn là một đặc tính của bashvà ksh, tuy nhiên, nó không thể được sử dụng trong hệ /bin/shvỏ tiêu chuẩn , mà trên Ubuntu được liên kết với nhau /bin/dash.
Trong trường hợp bạn phải dựa /bin/shvào tính di động của tập lệnh, thường có hai cách để tiếp cận điều này. Một sẽ được thông qua Globing. Chỉ cd folderAvà từ đó chạy rm a_*. Một cách khác, sẽ là triển khai kiểu chữ C để thay thế vòng lặp bằng while <CONDITION>;do ...donengôn ngữ shell và định dạng các số với printf:
$ sh -c 'i=0;while [ $i -le 750 ]; do filename=$(printf "a_%06d" $i);echo "$filename";i=$((i+1)) ;done'
Lưu ý rằng ở đây tôi sử dụng echo. Thay thế echo "$filename"bằng rm ./"$filename"hoặc rm -- "$filename"khi bạn đã sẵn sàng để xóa các tập tin. Cũng lưu ý rằng điều này nên được thực hiện khi bạn đã cded vào thư mục mong muốn.
(ab) sử dụng awk
Awk là một ngôn ngữ giống như C có thể giúp chúng ta theo hai cách: (1) chúng ta có thể tạo tên tệp bằng vòng lặp for và định dạng chúng thông qua sprintfchức năng, và (2) xóa các tệp đã nói thông qua system()lệnh, sẽ chuyển tên tệp và rmlệnh được tạo của chúng ta để /bin/sh:
awk 'BEGIN{for(i=0;i<=750;i++){filename=sprintf("a_%06d",i);system("rm "filename);} }'
Perl
Tiếp tục với ý tưởng về cách tiếp cận di động nơi chúng tôi "tạo" tên tệp, chúng tôi có thể làm tương tự trong Perl:
perl -le 'for(0..750){$fd=sprintf("a_%06d",$_);unlink($fd)}'