Оболочка POSIX
Первое решение terdon основано на расширении скобок, которое является свойством bash
и ksh
, однако, его нельзя использовать в стандартной /bin/sh
оболочке, на которую в Ubuntu есть символическая ссылка /bin/dash
.
В тех случаях, когда вам приходится полагаться /bin/sh
на переносимость ваших сценариев, обычно есть два подхода к этому. Можно было бы с помощью болтовни. Просто cd folderA
и оттуда беги rm a_*
. Другой способ - реализовать C-стиль для альтернативы цикла с использованием while <CONDITION>;do ...done
языка оболочки и отформатировать числа с помощью 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-подобным языком, может помочь нам двумя способами: (1) мы можем сгенерировать имена файлов с помощью for-loop и отформатировать их с помощью 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)}'