如何根据时间戳排序openssl的index.txt

时间:2013-03-18 00:27:51

标签: arrays sorting lua openssl

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

感谢。

1 个答案:

答案 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