如何构建可搜索的数据库?

时间:2011-05-06 07:13:36

标签: database search command-line

我想创建(或使用,如果已经存在)基于命令行的应用程序,用于创建,修改和搜索数据库。

理想情况下,此数据库是一个简单的文本文件,其中每一行都是一个条目。

如同这个简单的例子:

Apple    Fruit    Malus              Green/Red      55
Banana   Fruit    Musa acuminata     Yellow         68
Carrot   Veget.   D. carota          Orange         35

假设此文本存储在~/database.txt

我希望能够搜索fruit类型的所有条目(返回,AppleBanana)或所有大于千卡路里的条目在命令行上60(返回AppleCarrot)。

返回应通过标准终端输出发生,应如下所示:

$mydatabasesearch cal '<60'

Apple    Fruit    Malus              Green/Red      55
Carrot   Veget.   D. carota          Orange         35

此外,能够通过命令行添加到数据库将是非常棒的!

这周围有什么事吗?如果没有,你会怎么推荐我写这样的应用程序?我知道一点C++,但就是这样......

3 个答案:

答案 0 :(得分:1)

看看sqlite。它比纯文本文件复杂一点,但更强大。

答案 1 :(得分:0)

纯文本文件并不是真正的数据库。

如果您想坚持使用文本文件和命令行,请查看常用的unix实用程序,例如grepawk和coreutils包(cat,{{1} },cut,...)用于纯文本文件。将这些命令添加到一个shellcript中,你就完成了。

只要您转移到某种数据库系统,就不再有文本文件作为存储了。

除了已经提到的sqlite之外,如果你想编写自己的程序,Berkeley DB库也可能值得一看。这两个库在你的情况下应该是好的,因为它们不需要外部数据库服务器(如mysql)

答案 2 :(得分:0)

你可以在Unix中使用分隔文件SED执行此操作,也可以使用一些简单的命令行perl,您可以将其包装在bash脚本中。在wikibooks有一个很好的数据操作教程,你可以使用的SED可能都是here和第二部分教程。