我有一个文件夹,其中包含完整的torrent文件,我希望根据torrent文件的内容大小将其分类为更易于管理的大小。
这是我发现具有每个torrent文件引用内容大小的列表的最简单方法:
for file in *.torrent; do
head -1 "$file" | grep -aoE '6:lengthi[0-9]+' | cut -di -f2 | awk '{s+=$1} END {print s}';
done
我无法找到一种巧妙的方法将这些文件移动到文件夹中,以使它们不超过100GB。
我希望它最终像这样:
directory 1
---> torrent 1 - 50GB
---> torrent 2 - 25GB
---> torrent 3 - 24GB
directory 2
---> torrent 1 - 10GB
---> torrent 2 - 85GB
directory 3
---> torrent 1 - 90GB
我认为这是一个“多背包问题”,尽管我只是在寻找一个近似值。学习如何使用最佳解决方案将很有趣-一种更简单的方法是填充目录,直到下一个文件溢出,然后继续到下一个存储桶,即使这留下了空白空间。
答案 0 :(得分:-1)
您要么需要一个从torrent中提取实际文件大小的CLI工具,要么需要一个用于处理解码和可能进行更高级抽象的库,例如获取文件列表,然后在上面进行分割。
使用grep和awk太脆弱了,因为torrent可能包含与您的模式匹配的文本字符串。