Я создал список каталогов моего диска Google в индексе облачных вычислений. Лог c сортировки файлов по какой-то причине выглядит довольно странно. Он сортирует файлы последовательно от 0 для каждого di git, и если di git число совпадает, он проверяет второе di git от 0 и так далее ..
В настоящее время отсортированные файлы отображаются как это сверху вниз 1, 10, 100, 101..109, 11, 110, 111..119, 12
Есть простой способ исправить это, но мне нужно вручную переименовать каждый файл и добавьте префикс 0 на основе количества цифр наибольшего числа, но их сотни / тысячи. Я буду использовать javascript для переименования всех моих файлов, он допускает ввод новых имен в следующем формате (oA - это массив, в который я ввожу новые имена для каждого файла).
Мне было интересно, если любая функция awk / perl / regex может дать ожидаемый результат при выполнении в file.txt
Пример 1
cat file.text
oA=['Lecture 7 - Topic.mp4','Lecture 56 - Topic.mp4','Lecture 3 - Topic.mp4','Lecture 4 - Topic.mp4']
Ожидаемый результат
oA=['Lecture 07 - Topic.mp4','Lecture 56 - Topic.mp4','Lecture 03 - Topic.mp4','Lecture 04 - Topic.mp4']
Пример 2
cat file.txt
oA=['Lecture 3 - Topic.mp4','Lecture 116 - Topic.mp4','Lecture 46 - Topic.mp4','Lecture 112 - Topic.mp4']
Ожидаемый результат
oA=['Lecture 003 - Topic.mp4','Lecture 116 - Topic.mp4','Lecture 046 - Topic.mp4','Lecture 112 - Topic.mp4']
Пример 3
cat file.txt
oA=['Lecture 8 - Topic.mp4','Lecture 1165 - Topic.mp4','Lecture 667 - Topic.mp4','Lecture 12 - Topic.mp4']
Ожидаемый результат
oA=['Lecture 0008 - Topic.mp4','Lecture 1165 - Topic.mp4','Lecture 0667 - Topic.mp4','Lecture 0012 - Topic.mp4']
Как вы могли заметить, только префикс 0 должны быть добавлены к каждому числу по мере необходимости, порядок лекций по-прежнему сохраняется (это важно)
Если бы мне пришлось объяснять это так ...
1) Возьмите наибольшее число после слово Лекция и проверьте его количество цифр. 2) Теперь все числа будут иметь такое же количество цифр, что и наибольшее число, при необходимости добавьте нули префикса к каждому числу