31 lines
624 B
Lua
31 lines
624 B
Lua
local stdin = io.open("/dev/stdin")
|
|
local list = stdin:read("*a")
|
|
stdin:close()
|
|
|
|
local lineas = 0
|
|
-- Pass 1: contar lineas
|
|
for line in (list):gmatch('[^\r\n]+') do
|
|
lineas = lineas + 1
|
|
end
|
|
|
|
local cantidad_de_listas = tonumber(arg[1])
|
|
local cada_lista = lineas / cantidad_de_listas
|
|
|
|
local listas = {}
|
|
|
|
for i = 1,cantidad_de_listas do
|
|
listas[i] = io.open("TMP-lista-shard-"..i, "w")
|
|
end
|
|
|
|
local index = 1
|
|
-- Pass 2: hacer listas
|
|
for line in (list):gmatch('[^\r\n]+') do
|
|
local lista = listas[math.ceil(index / cada_lista)]
|
|
lista:write(line,"\n")
|
|
index = index + 1
|
|
end
|
|
|
|
for _, lista in ipairs(listas) do
|
|
lista:close()
|
|
end
|