#!/bin/bash help() { echo 'sqlite3cat: simple sqlite3 DB viewer. Usage: sqlite3cat [FILE] [TABLE/QUERY/-l] first argument: sqlite3 file second, optional argument: TABLE: If not given, first in schema used. QUERY: If the second argument contains spaces, it is assumed to be a query. -l: List table names ' } [[ "$1" == "-h" ]] && { help; exit } [[ -f "$1" ]] || { help; exit } sqlfile="$1" [[ "$2" == "-l" ]] && { sqlite3 "$sqlfile" "SELECT name FROM sqlite_master WHERE name NOT LIKE 'sqlite_%'" exit } [[ -z "$2" ]] && { table=$( sqlite3 "$sqlfile" "SELECT name FROM sqlite_master WHERE name NOT LIKE 'sqlite%' LIMIT 1;" ) } || { table="$2" } [[ "$table" = "${table% *}" ]] && { query="SELECT * FROM $table;" echo "$query" } || { query="$table" } sqlite3 -header -column -nullvalue NA "$sqlfile" "$query"