我需要在openssl的index.txt文件中找到特定记录,然后根据时间戳对它们进行排序,以便最新记录显示在顶部。我正在将文件读入数组,并且数组看起来像这样:(我已将表转储到日志文件中)
database= {}
database[1] = "R 140318001552Z 130318002148Z 7D unknown /CN=test@test.net/emailAddress=test@test.net"
database[2] = "V 140318001809Z 7E unknown /CN=test@yahoo.com/emailAddress=test@yahoo.com"
database[3] = "V 140318002157Z 7F unknown /CN=test@yahoo.com/emailAddress=test@yahoo.com"
我希望能够通过第二列(即时间戳)对此数组进行排序。我需要先将最新记录排序。 我将如何在lua中编写此代码?
感谢。
答案 0 :(得分:1)
如果你的模式是这样固定的,你只需搜索第一个数字(使用string.match
)并比较这些数字。请注意,string.match
会为您提供字符串而不是数字。但由于数字长度相等,因此词法比较应该足够了。当然,如果有必要,您可以使用适当的库将该字符串转换为数字甚至是日期/时间对象。但是让我们保持简单:
table.sort(database, function(e1,e2)
return string.match(e1, "%d+") > string.match(e2, "%d+")
end)
如果sort
应该在排序表中的true
之前,则提供给e1
的函数应返回e2
。