Документация Lua содержит массу подробностей о чтении файлов и других операциях ввода-вывода. Для чтения всего файла:
t = io.read("*all")
явно читает весь файл. В документации есть примеры чтения строк за строкой и т. Д. Надеюсь, это поможет.
Пример чтения всех строк файла и нумерации каждой из них (построчно):
local count = 1
while true do
local line = io.read()
if line == nil then break end
io.write(string.format("%6d ", count), line, "\n")
count = count + 1
end