Problem
Sie möchten ermitteln ob ein bestimmtes Suchmuster in einer sqlite-Datenbank als Feldname, Indexname oder als Wert verwendet wird ?
Im Normalfall müssten sie die Datenbank öffnen, alle Tabellennamen ermitteln und alle Werte aus den einzelnen Tabellen lesen.
Lösung
Genau das erledigt das folgende Script:
(Funktioniert auf allen linux-Systemen oder auch auf mac os-x Systemen)
search_in_db.sh
#!/bin/bash #$1= Name der DB #$2= Suchmuster [ $# -ne 2 ] && echo "USAGE: $0 DBNAME SUCHMUSTER" && exit 1 [ ! -f "$1" ] && echo "$0: Datenbankdatei $1 nicht gefunden" && exit 2 LOT=`sqlite3 $1 ".tables"` for ii in $LOT do WC=`sqlite3 $1 "select * from $ii"|wc -l` SC=`sqlite3 $1 "select * from $ii"|grep $2|wc -l` if [ $SC -ne 0 ] then echo "$ii $SC/$WC TREFFER !!" else echo "$ii $SC/$WC" fi done