diff --git a/tsv/sqlite3ncsv b/tsv/sqlite3ncsv new file mode 100755 index 0000000..92ce223 --- /dev/null +++ b/tsv/sqlite3ncsv @@ -0,0 +1,38 @@ +#!/bin/bash +help() { +echo 'Sqlite3NCSV: view sqlite3 DB with ncsv. + Usage: sqlite3ncsv [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;" +} || { + query="$table" +} + +sqlite3 -header -separator ' ' -nullvalue NA "$sqlfile" "$query" | ncsv +