breaking stuff with sqlite
This commit is contained in:
40
tsv/sqlite3cat
Executable file
40
tsv/sqlite3cat
Executable file
@@ -0,0 +1,40 @@
|
||||
#!/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"
|
||||
|
||||
Reference in New Issue
Block a user