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

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

谢谢。

点赞
用户1633117
用户1633117

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

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

提供给 sort 的函数应该在排序的表中返回 true 如果 e1 应该在 e2 之前。

2013-03-18 01:04:47