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"