---
name: "sdb"
section: "1"
platform: "linux"
package: "radare2"
version: "6.2.2-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/sdb"
---

# sdb(1)

simple key-value database baked by base64, json and arrays

## NAME

**sdb** – simple key-value database baked by base64, json and arrays

## SYNOPSIS

**sdb** \[**-0dehjJv**\] *-\|db* *\[-\|=\|==\]* *\[.file\|expr* *..\]*

## DESCRIPTION

SDB is a simple disk and memory string-based key-value database. It is based on CDB and uses

- **-d**

  Decode stdin as base64 and prints to result to stdout

- **-D**

  Find differences between two databases

- **-C**

  Create the C and H files for a perfect hash implementation of the contents of the given Sdb

- **-G**

  Create the gperf file used by -C

- **-e**

  Encode stdin in base64 and prints to stdout

- **-h**

  Show help message

- **-j**

  Indent JSON from stdin if no more arguments, otherwise dump database as JSON.

- **-J**

  Enable journaling

- **-h**

  Show help message

- **-v**

  Show version

## EXAMPLES

Some useful ways to run it:

$ sdb -                           ; in memory database

$ sdb test.db = \< test.txt        ; create database from text file

$ sdb test.db == a.txt b.txt      ; create database from text files in a single command

$ sdb test.db                     ; dump contents of database

$ sdb test.db a=b a               ; inline queries

Append those quoted commands to 'sdb -' to test these sdb\_query expressions:

a=hello b=world a b    # hello world

a=1 +a -a              # 2 1     ; key inc/dec

a={"a":122} a:a=O a    # {"a":0} ; json set

a={"foo":122} +a:foo   # 123     ; json increment

\[\]a=1,2,3,4,5 \[?\]a     # 5       ; count array

\[\]a=1,2,3,4,5 \[0\]a     # 1       ; get element

\[\]a=1,2 \[0\]a=X a       # X2      ; replace

\[\]a=1,2 \[+0\]a=0 a      # 012     ; prepend

\[\]a=1,2 \[-1\]a=3 a      # 123     ; append

## AUTHORS

pancake \<pancake@nopcode.org\>
