Сортировать торрент-файлы в папки размером 100 ГБ в зависимости от содержимого - PullRequest
1 голос
/ 25 апреля 2019

У меня есть папка с полными торрент-файлами, которые я бы хотел отсортировать в более управляемый размер в зависимости от размера содержимого торрент-файлов.

Это самый простой способ найти списокс размером содержимого каждого торрент-файла:

for file in *.torrent; do 
head -1 "$file" | grep -aoE '6:lengthi[0-9]+' | cut -di -f2 | awk '{s+=$1} END {print s}'; 
done

Мне не удалось найти умный способ переместить эти файлы в папки, чтобы они не превышали 100 ГБ.

Я хочу, чтобы все закончилось так:

directory 1
---> torrent 1 - 50GB
---> torrent 2 - 25GB
---> torrent 3 - 24GB

directory 2
---> torrent 1 - 10GB
---> torrent 2 - 85GB

directory 3
---> torrent 1 - 90GB

Я считаю, что это "проблема множественных ранцев" - хотя я только ищу приближение.Было бы интересно узнать, как решить с помощью оптимального решения - более простой подход - заполнить каталог до тех пор, пока следующий файл не переполнится, а затем перейти к следующему сегменту, даже если это оставляет пустое пространство.

1 Ответ

0 голосов
/ 29 апреля 2019

Вам либо нужен инструмент CLI, который извлекает фактические размеры файлов из торрента, либо библиотека, которая обрабатывает декодирование и, возможно, абстракции более высокого уровня, такие как получение списка файлов, а затем реализует разбиение поверх этого.

Использование grep и awk слишком хрупко, поскольку торрент может содержать текстовые строки, соответствующие вашим шаблонам.

...