*.gdbmファイルを操作するCLIプログラムまたはコマンドはありますか?

*.gdbmファイルを操作するCLIプログラムまたはコマンドはありますか?

Modem-manager-guiすべてのメッセージを*.gdbmファイルに保存します。ファイルを削除するとsms.gdbmメッセージはすべて削除され、シェルプログラムを実行して受信したメッセージと送信されたメッセージを別々に削除しようとします。私は努力したman gdbm。マニュアルを理解していないようです。

答え1

最も簡単な方法は、おそらくより強力なスクリプト言語で一時的なツールを書くことです。

私はRubyで1つ書きました。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"

関連情報