Lua-在.csv文件中查找/删除重复行以创建纯/唯一列表



我有一个3000+行的.csv文件,我通过将多个.csv源拉到一起创建的,内容示例如下。

NEC;    35;     -1;     10
RC5;    0;      -1;     12
Panasonic;      176;    0;      61
RC5;    21;     -1;     1
RC5;    21;     -1;     1
NEC;    0;      -1;     0
RECS80; 4;      -1;     30
NEC;    1;      249;    3
Denon;  1;      -1;     40
NEC;    132;    60;     33

请有人告诉我如何从上面创建一个只有唯一行的新.csv文件?

如果可能的话,请有人继续解释我如何在我现有的.csv文件和Lua数组/表创建阶段做到这一点-非常感谢!。。

仅供参考-我的新Lua代码使用循环和以下内容来填充.csv

local info = table.concat ({protocol, D, S, F}, '; ')

最简单的方法可能是逐个读取行,并在不解析它们的情况下跟踪您已经看到的行:

local csv = assert(io.open("test.csv", "r"))
local lines = {}
for line in csv:lines() do
if not lines[line] then
print(line)
lines[line] = true
end
end

这应该将text.csv中的所有唯一行打印到标准输出(与它们在文件中出现的顺序相同(。

如果您的系统中有uniq和sort,您也可以将它们结合使用。

如果您需要将相同的逻辑应用于表中的行,那么类似的操作应该有效(假设这些行在表tt中(:

local lines = {}
for _, line in ipairs(tt) do
if not lines[line] then
print(line)
lines[line] = true
end
end

相关内容

  • 没有找到相关文章

最新更新