Existem programas CLI ou comandos para manipular arquivos * .gdbm?

1

Modem-manager-gui armazena todas as mensagens para um arquivo *.gdbm . A exclusão do arquivo sms.gdbm remove todas as mensagens, mas estou tentando fazer um programa shell para excluir recebido e enviado separadamente. Eu tentei man gdbm . Eu não acho que eu poderia entender o manual.

    
por DScript 17.07.2015 / 15:28

1 resposta

2

A maneira mais fácil é provavelmente escrever uma ferramenta improvisada em uma linguagem de script um pouco mais poderosa.

Acabei de escrever um no GDBM do Ruby (não tratamento de erros):

#!/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

Salve este script como gdbmtool . Você pode manipular qualquer valor-chave no gdbm assim:

$ 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"
    
por 17.07.2015 / 18:07