Solução shell POSIX
A primeira solução do terdon depende da expansão de chaves, que é uma propriedade de bash
e ksh
, no entanto, não pode ser usada no /bin/sh
shell padrão , no qual o Ubuntu está vinculado /bin/dash
.
Nos casos em que você precisa confiar /bin/sh
na portabilidade de seus scripts, geralmente há duas maneiras de abordar isso. Um seria via globbing. Apenas cd folderA
e de lá corra rm a_*
. Por outro lado, seria implementar uma alternativa para loop no estilo C usando while <CONDITION>;do ...done
na linguagem shell e formatar os números com printf
:
$ sh -c 'i=0;while [ $i -le 750 ]; do filename=$(printf "a_%06d" $i);echo "$filename";i=$((i+1)) ;done'
Observe que aqui eu uso echo
. Substitua echo "$filename"
por rm ./"$filename"
ou rm -- "$filename"
quando estiver pronto para excluir os arquivos. Observe também que isso deve ser realizado quando você já estiver cd
no diretório desejado.
(ab) usando awk
O awk, sendo uma linguagem C agradável, pode nos ajudar de duas maneiras: (1) podemos gerar nomes de arquivos com loop for e formatá-los via sprintf
função e (2) excluir os arquivos por system()
comando, o que passará nosso nome de arquivo e rm
comando gerados para /bin/sh
:
awk 'BEGIN{for(i=0;i<=750;i++){filename=sprintf("a_%06d",i);system("rm "filename);} }'
Perl
Continuando com a idéia de abordagem portátil onde "geramos" nomes de arquivos, podemos fazer o mesmo no Perl:
perl -le 'for(0..750){$fd=sprintf("a_%06d",$_);unlink($fd)}'