Model file lines with an in-memory string and count each logical line.

Line Count

line_count.lua
local raw = 
local text = string.gsub(raw, "|", "\n")
local count = 0
local lastLine = ""

for line in string.gmatch(text, "[^\n]+") do
  count = count + 1
  lastLine = line
end

print("raw=" .. raw)
print("count=" .. count)
print("lastLine=" .. lastLine)
local raw = 
local text = string.gsub(raw, "|", "\n")
local count = 0
local lastLine = ""

for line in string.gmatch(text, "[^\n]+") do
  count = count + 1
  lastLine = line
end

print("raw=" .. raw)
print("count=" .. count)
print("lastLine=" .. lastLine)
local raw = 
local text = string.gsub(raw, "|", "\n")
local count = 0
local lastLine = ""

for line in string.gmatch(text, "[^\n]+") do
  count = count + 1
  lastLine = line
end

print("raw=" .. raw)
print("count=" .. count)
print("lastLine=" .. lastLine)
in-memory text For static replay, use fixed text strings instead of reading a real file.