Files
q-tools/tsv/sqlite3ncsv
2016-03-08 13:25:33 +02:00

39 lines
893 B
Bash
Executable File

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