Je crée un script shell pour exporter une requête sqlite vers un fichier csv, comme ceci:
#!/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"
Lors de l'exécution du script, la sortie apparaît à l'écran, au lieu d'être enregistrée dans "out.csv". Cela fonctionne de la même manière avec la ligne de commande, mais je ne sais pas pourquoi le script shell ne parvient pas à exporter les données vers le fichier.
Qu'est-ce que je fais mal?
<<! ... !
est exactement ce dont j'avais besoin. Merci.Au lieu des commandes dot, vous pouvez utiliser les options de commande sqlite3:
sqlite3 -header -csv my_db.db "select * from my_table;" > out.csv
Cela en fait un one-liner.
En outre, vous pouvez exécuter un fichier de script sql:
sqlite3 -header -csv my_db.db < my_script.sql > out.csv
Utilisez
sqlite3 -help
pour voir la liste des options disponibles.la source
J'ai récemment créé un script shell qui pourra prendre les tables d'un fichier db et les convertir en fichiers csv.
https://github.com/darrentu/convert-db-to-csv
N'hésitez pas à me poser des questions sur mon script :)
la source
Bien que la question porte sur le script shell, je pense que cela aidera peu de ceux qui sont juste dérangés par le transfert des données de la base de données sqlite3 vers un fichier csv.
J'ai trouvé un moyen très pratique de le faire avec le navigateur Firefox en utilisant l'extension SQLite Manager.
Connectez-vous simplement à votre fichier de base de données sqlite dans firefox (gestionnaire SQlite -> connecter la base de données) puis Table -> Exporter la table. Vous serez servi avec d'autres options sur lesquelles vous pouvez simplement cliquer et essayer ...
À la fin, vous obtenez un fichier csv avec la table que vous avez choisie pour l'exportation.
la source
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
la source