Я не хочу гореть или быть за пределами правил, но когда я беру интервью в месте, я абсолютно задаю конкретные вопросы платформы. Не только, чтобы судить, будут ли мои собственные навыки релевантны и использоваться удовлетворительно в месте, но соглашаюсь ли я существенно с их проектными решениями или собираюсь застрять, поддерживая плохо разработанную платформу.
Т.е. если бы кто-то работает, их ферма сервера в Windows I не хотела бы работать там. Так "Делают Вас, парни преимущественно запускают Windows?" Очень допустимый вопрос. Для администратора окон противоположный вопрос может быть актуальным.;)
если необходимо полностью определить "число части", со сгенерированных "имен" файлов части можно использовать "-d" и иметь суффиксный аргумент, чтобы быть именем каталога, где "файлы части" должны быть сгенерированы. Используя "-a" можно указать количество цифр, которые будут использоваться для генерации суффиксных имен.
пример: разделите файл "cfg.pm", 3 строки на выходной файл; используйте 3 цифры для сгенерированных суффиксов (удостоверяющийся, что пространство имен не исчерпывается); используйте суффиксы только для числа; обманите разделение для генерации имен файлов только для цифры путем определения каталога как префикса
mkdir ./s
split -a 3 -l 3 -d cfg.pm s/
после этого,
ls s | tail -1
неявно даст Вам количество сгенерированных файлов
ls s|tail -1
414
Поднимание из ответа adirau:
Если Вашей системе назвали сценарий Perl rename
(и это - версия, которая будет поддерживать выполнение этого), можно переименовать файлы так, чтобы каждое число было увеличено одним, и имейте префикс и суффикс:
count=$(($(ls s | tail -n 1) + 1))
rename "my \$n=sprintf(\"%03d\", \$_+1); my \$c=sprintf(\"%03d\", $count); s/.*/prefix\${n}of\${c}/" *
Это переименовало бы файлы от:
000
001
002
кому:
prefix001of003
prefix002of003
prefix003of003
Это - объем того сценария Perl, между прочим:
use strict;
use Getopt::Long;
Getopt::Long::Configure('bundling');
my ($verbose, $no_act, $force, $op);
die "Usage: rename [-v] [-n] [-f] perlexpr [filenames]\n"
unless GetOptions(
'v|verbose' => \$verbose,
'n|no-act' => \$no_act,
'f|force' => \$force,
) and $op = shift;
$verbose++ if $no_act;
if (!@ARGV) {
print "reading filenames from STDIN\n" if $verbose;
@ARGV = <STDIN>;
chop(@ARGV);
}
for (@ARGV) {
my $was = $_;
eval $op;
die $@ if $@;
next if $was eq $_; # ignore quietly
if (-e $_ and !$force)
{
warn "$was not renamed: $_ already exists\n";
}
elsif ($no_act or rename $was, $_)
{
print "$was renamed as $_\n" if $verbose;
}
else
{
warn "Can't rename $was $_: $!\n";
}
}