1

我需要在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 中编写此代码?

谢谢。

4

1 回答 1

1

如果您的模式是这样固定的,您可以简单地搜索第一个数字(使用string.match)并比较这些数字。请注意,这string.match会给你字符串而不是数字。但是由于数字的长度相等,因此词法比较就足够了。当然,如果有必要,您可以使用适当的库将该字符串转换为数字甚至日期/时间对象。但让我们保持简单:

table.sort(database, function(e1,e2)
    return string.match(e1, "%d+") > string.match(e2, "%d+")
end)

如果应该在排序表中出现,则提供给的函数sort应该返回。truee1e2

于 2013-03-18T01:04:47.527 回答