是否有 CLI 程序或命令来操作 *.gdbm 文件

是否有 CLI 程序或命令来操作 *.gdbm 文件

Modem-manager-gui将所有消息存储到*.gdbm文件中。删除sms.gdbm文件会删除所有消息,但我正在尝试执行一个 shell 程序来分别删除接收和发送的消息。我试过man gdbm。我认为我无法理解该手册。

答案1

最简单的方法可能是用更强大的脚本语言编写一个临时工具。

我刚刚用 Ruby 写了一篇GDBM(无错误处理):

#!/usr/bin/ruby

require 'gdbm'

dbfile, op, key, val, = ARGV

GDBM.open(dbfile) do |db|
  case op
  when "set"
    db[key] = val
  when "get"
    puts db[key]
  when "rm"
    db.delete(key)
  else
    db.each do |k, v|
      puts "#{k.inspect} = #{v.inspect}"
    end
  end
end

将此脚本另存为gdbmtool.您可以像这样操作 gdbm 中的任何键值:

$ chmod +x gdbmtool
$ ./gdbmtool database.gdbm set abc def
$ ./gdbmtool database.gdbm set 123 456
$ ./gdbmtool database.gdbm get abc
def
$ ./gdbmtool database.gdbm
"abc" = "def"
"123" = "456"
$ ./gdbmtool database.gdbm rm abc
$ ./gdbmtool database.gdbm
"123" = "456"

相关内容