POSIXシェルソリューション
terdonの第1の解決策は の特性であるブレース展開、に依存しているbash
とksh
、それは標準で使用することができないが、/bin/sh
Ubuntuの上にシンボリックリンクされたシェル、/bin/dash
。
/bin/sh
スクリプトの移植性を信頼する必要がある場合、一般的にこれにアプローチする方法は2つあります。1つはグロビングによるものです。ただcd folderA
そこから走りrm a_*
ます。もう1つの方法は、while <CONDITION>;do ...done
シェル言語でCループのfor代替ループを実装し、次のように数値をフォーマットすることですprintf
。
$ sh -c 'i=0;while [ $i -le 750 ]; do filename=$(printf "a_%06d" $i);echo "$filename";i=$((i+1)) ;done'
ここで使用していることに注意してくださいecho
。交換するecho "$filename"
とrm ./"$filename"
かrm -- "$filename"
、あなたはファイルを削除する準備ができたら。また、これはcd
、目的のディレクトリに既に移動したときに実行する必要があることに注意してください。
(ab)awkを使用する
Awkは、Cに似た素敵な言語であるため、2つの方法で役立ちます:(1)forループでファイル名を生成し、sprintf
関数でフォーマットする、(2)system()
コマンドでファイルを削除し、生成されたファイル名とrm
コマンドを渡すに/bin/sh
:
awk 'BEGIN{for(i=0;i<=750;i++){filename=sprintf("a_%06d",i);system("rm "filename);} }'
Perl
ファイル名を「生成」するポータブルなアプローチの考え方を続けると、Perlでも同じことができます。
perl -le 'for(0..750){$fd=sprintf("a_%06d",$_);unlink($fd)}'