perl -le '
for ( grep { /^[a-zA-Z]+\d\.\d{2}\_\d.\d{4}\.end$/ } <*.end> ) {
($n) = /(\d{4})\.end$/;
$min //= $n;
$n <= $min and $min = $n, push @{$h{$min}}, $_;
}
print for @{$h{$min}};
'
<*>
собирает все соответствующие файлы, используя синтаксис подстановки, из которых соответствующие файлы синтаксиса должны быть выбраны с помощью для
.
Внутри для
мы сначала извлекаем последние 4 цифры, чтобы определить и сравнить их с текущим минимумом
и, если он найден, помещаем в хэш.
В конце мы просто печатаем содержимое хэша с ключом $ min
.