Найти недостающие номера

537
Eli Shain

У меня большой список файлов с именами (видео)

Мне удалось записать все имена файлов в текстовом файле. Теперь у меня есть текстовый файл с большим количеством имен файлов (один эпизод на строку). Теперь мне нужно что-то, что может прочитать этот текстовый файл и сказать мне, какой Eномер серии отсутствует

S1-E18-(Date)-(Title)-(Random numbers).mp4 

Вот пример списка

S1-E1-20100526-title-of-video-1400316375.mp4 S1-E3-20100517-title-of-video-15457547.mp4 S10-E5-20100421-title-of-video-14467457.mp4 S5-E7-20120912-title-of-video-17467457.mp4 

В этом случае легко увидеть, что файлы S1-E2и S10-E4отсутствуют. но если у меня большой список, то как мне найти отсутствующие файлы? (Оставить номер сезона S1, S2) просто нужно проверить, Eзначит номер серии

Наибольший номер существующего файла S50-E2184и Наименьший существующий номер файлаS1-E1

2
Что вы пробовали? Eric F 6 лет назад 1
Ваш пример не очень хорош. harrymc 6 лет назад 0
Является ли количество серий для каждого сезона фиксированным? или хотя бы известно? glenn jackman 6 лет назад 0
@EricF Я ничего не пробовал Eli Shain 6 лет назад 0
@harrymc Я знаю, что мой английский не очень хорош, Eli Shain 6 лет назад 0
@glennjackman Номера исправлены. Eli Shain 6 лет назад 0
Ваш английский достаточно хорош. Я понимаю, что S10-E4 отсутствует, но как насчет S10-E1 на E3 и E5 на что угодно, и мы не знаем последнего номера. Вы не даете достаточно информации, чтобы понять всю проблему. harrymc 6 лет назад 2
Может быть, вы должны были спросить на https://softwarerecs.stackexchange.com/? Mawg 6 лет назад 0
Сортируйте его с помощью `sort -V` для сортировки по сезону, затем по эпизоду или` sort -t- -k2` для сортировки только по эпизоду. Затем вы можете запустить цикл или другой, чтобы получить пропущенные сезоны / эпизоды. Paulo 6 лет назад 0

1 ответ на вопрос

0
Robert Ranjan

Сохраните все имена в файле с именем «file_with_list_of_files» и выполните команду ниже в терминале linux / unix [я пробовал это в терминале mac]:

cat file_with_list_of_files | sed 's/^[A-Z][0-9]*-//g' | grep -v "^E" 

-- или же --

cat file_with_list_of_files | awk -F- '' | grep -v "^E" 

В этом списке перечислены все имена файлов, которые не имеют E после первого - (дефис). Вы можете найти и другие лучшие способы сделать это.