Solución de shell POSIX
La primera solución de terdon se basa en la expansión de llaves , que es una propiedad de bash
y ksh
, sin embargo, no se puede usar en el /bin/sh
shell estándar , al que Ubuntu está vinculado /bin/dash
.
En los casos en los que tiene que confiar /bin/sh
para la portabilidad de sus scripts, generalmente hay dos formas de abordar esto. Uno sería a través de globbing. Justo cd folderA
y desde allí corre rm a_*
. La otra forma, sería implementar un estilo C para la alternativa de bucle usando while <CONDITION>;do ...done
lenguaje de shell y formatear los números con printf
:
$ sh -c 'i=0;while [ $i -le 750 ]; do filename=$(printf "a_%06d" $i);echo "$filename";i=$((i+1)) ;done'
Tenga en cuenta que aquí lo uso echo
. Reemplace echo "$filename"
con rm ./"$filename"
o rm -- "$filename"
cuando esté listo para eliminar los archivos. También tenga en cuenta que esto debe realizarse cuando ya ha cd
editado en el directorio deseado.
(ab) usando awk
Awk es un buen lenguaje tipo C que puede ayudarnos de dos maneras: (1) podemos generar nombres de archivo con for-loop y formatearlos mediante la sprintf
función, y (2) eliminar dichos archivos mediante un system()
comando, que pasará nuestro nombre de archivo y rm
comando generados a /bin/sh
:
awk 'BEGIN{for(i=0;i<=750;i++){filename=sprintf("a_%06d",i);system("rm "filename);} }'
Perl
Continuando con la idea del enfoque portátil donde "generamos" nombres de archivo, podemos hacer lo mismo en Perl:
perl -le 'for(0..750){$fd=sprintf("a_%06d",$_);unlink($fd)}'