我打算做的是 a)解析与正则表达式匹配的一些行的文件 b)将匹配存储在某种数据库/文件中,这样我就不必一次又一次地进行解析 c)调用另一个程序将匹配作为参数传递
虽然我可以想象如何做a)和c),但我对b)有点不确定。匹配的格式为
键:ATTRIBUTE1:attribute2:attribute3
其中属性2可以是可选的。我正在考虑将结果存储在一个简单的数据库中,但问题是数据库需要在多个Unix平台上才能使程序正常工作。是否有任何(简单)数据库可以在任何Unix平台上找到?或者我应该使用某种索引顺序文件?
答案 0 :(得分:3)
如果您不需要SQL,请查看* DBM系列工具。 Sleepycat(现在是Oracle的一部分)拥有BerkeleyDB; GNU有GDBM。您也可以找到NDBM。使用普通DBM时要小心;谣言(至少)有一个相当大的错误。
这些都是基于密钥和任意关联数据提供散列查找的系统,正是您所使用的。
请注意,散列查找非常适合搜索“恰好这个键”,但对于“此值与该值之间的所有键”非常糟糕。如果您需要执行后面的查询,请仔细查看所提供的索引方案:在这些包中可能有您需要的内容,或者您可能更好地查看其他内容 - 使用B-Tree的索引顺序访问机制(ISAM)或类似的支持。但是,* DBM软件包相当普遍(因为相当多的系统只需要精确的值查找)。例如,它们用于邮件别名文件(您确实为特定别名的扩展执行精确查找)。
答案 1 :(得分:1)