Estoy haciendo un script de shell para exportar una consulta sqlite a un archivo csv, así:
#!/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"
Al ejecutar el script, la salida aparece en la pantalla, en lugar de guardarse en "out.csv". Está funcionando haciendo el mismo método con la línea de comando, pero no sé por qué el script de shell no puede exportar datos al archivo.
¿Qué estoy haciendo mal?
<<! ... !
es exactamente lo que necesitaba. Gracias.En lugar de los comandos de punto, puede usar las opciones de comando sqlite3:
sqlite3 -header -csv my_db.db "select * from my_table;" > out.csv
Esto lo convierte en una sola línea.
Además, puede ejecutar un archivo de script SQL:
sqlite3 -header -csv my_db.db < my_script.sql > out.csv
Use
sqlite3 -help
para ver la lista de opciones disponibles.fuente
Recientemente creé un script de shell que podrá tomar las tablas de un archivo db y convertirlas en archivos csv.
https://github.com/darrentu/convert-db-to-csv
No dudes en hacerme cualquier pregunta sobre mi guión :)
fuente
Aunque la pregunta es sobre el script de shell, creo que ayudará a algunos de los que simplemente se preocupan por transferir los datos de la base de datos sqlite3 a un archivo csv.
Encontré una forma muy conveniente de hacerlo con el navegador Firefox usando la extensión SQLite Manager.
Simplemente conéctese a su archivo de base de datos sqlite en firefox (administrador SQlite -> conectar base de datos) y luego Tabla -> Exportar tabla. Se le servirán algunas opciones más en las que puede hacer clic y probar ...
Al final, obtiene un archivo csv con la tabla que ha elegido exportar.
fuente
Using command line for Linux: user@dell-Admin: sqlite3 #activate your sqlite database first sqlite> .tables #search for tables if any available if already created one. sqlite> .schema #if you want to check the schema of the table. # once you find your table(s), then just do the following: sqlite> .headers on #export along with headers (column names) sqlite> .mode csv #file type is csv sqlite> .output example.csv #you want to provide file name to export sqlite> SELECT * from events; #If entire table is needed or select only required sqlite> .quit #finally quit the sqlite3
fuente