В Lua нет никакой магии, если файл большой, то и потратить на него нужно будет мног окак процессорного времени так и ОЗУ. Ты можешь в принципе обрабатывать файл не целиком, это сократит объём используемой памяти, например, вгрузил файл и через handle:read("*l") читаешь из него строки и сразу же их пишешь в другой файл, после окончания первого файла закрываешь оба, удаляешь первый, а второму даёшь имя первого файла. Этот способ хорош, если файлы большие, потому что Lua не сильно то и дружит с ну очень длинными строками (речь идёт про гигабайты даты).