Ich erstelle ein Shell-Skript, um eine SQLite-Abfrage in eine CSV-Datei zu exportieren.
#!/bin/bash
./bin/sqlite3 ./sys/xserve_sqlite.db ".headers on"
./bin/sqlite3 ./sys/xserve_sqlite.db ".mode csv"
./bin/sqlite3 ./sys/xserve_sqlite.db ".output out.csv"
./bin/sqlite3 ./sys/xserve_sqlite.db "select * from eS1100_sensor_results;"
./bin/sqlite3 ./sys/xserve_sqlite.db ".exit"
Bei der Ausführung des Skripts wird die Ausgabe auf dem Bildschirm angezeigt, anstatt in "out.csv" gespeichert zu werden. Es funktioniert genauso mit der Befehlszeile, aber ich weiß nicht, warum das Shell-Skript keine Daten in die Datei exportieren kann.
Was mache ich falsch?
<<! ... !
ist genau das, was ich brauchte. Vielen Dank.Anstelle der Punktbefehle können Sie auch die Befehlsoptionen sqlite3 verwenden:
Dies macht es zu einem Einzeiler.
Sie können auch eine SQL-Skriptdatei ausführen:
Verwenden Sie
sqlite3 -help
diese Option, um die Liste der verfügbaren Optionen anzuzeigen.quelle
Ich habe kürzlich ein Shell-Skript erstellt, mit dem die Tabellen aus einer Datenbankdatei in CSV-Dateien konvertiert werden können.
https://github.com/darrentu/convert-db-to-csv
Fühlen Sie sich frei, mir Fragen zu meinem Skript zu stellen :)
quelle
Obwohl es sich bei der Frage um ein Shell-Skript handelt, denke ich, dass es nur wenigen helfen wird, die sich nur darum kümmern, die Daten aus der sqlite3-Datenbank in eine CSV-Datei zu übertragen.
Ich habe einen sehr praktischen Weg gefunden, dies mit dem Firefox-Browser unter Verwendung der SQLite Manager-Erweiterung zu tun.
Stellen Sie einfach eine Verbindung zu Ihrer SQLite-Datenbankdatei in Firefox her (SQlite-Manager -> Datenbank verbinden) und dann Tabelle -> Tabelle exportieren. Sie erhalten weitere Optionen, die Sie einfach anklicken und ausprobieren können.
Am Ende erhalten Sie eine CSV-Datei mit der Tabelle, die Sie für den Export ausgewählt haben.
quelle
quelle