在Windows上使用sqlite将查询输出重定向到文本文件?

Pla*_*mer 0 database sqlite

我正在Windows中使用Sqlite进行一些查询(我以方式执行sqlite3 mydb.db),但是我无法重定向输出(我试图以.tables> 的常规命令行方式进行new_db_output.txt),因为sqlite在命令下作为程序运行线。

官方的sqlite网页中,有一个部分称为“将结果写入文件”,但无法按我尝试的方式工作:

.tables .output new_db_output.txt

都不

.tables | .output new_db_output.txt

有什么想法将输出保存到文件吗?

注意:我正在使用sqlite3和Windows 7。

CL.*_*CL. 6

sqlite3命令行外壳的dot命令无法组合。

.output影响以下所有命令;只需预先执行即可:

.output new_db_output.txt
.tables
.output
Run Code Online (Sandbox Code Playgroud)


ePi*_*314 6

从 SQLite 命令行界面外部

如果您在 SQLite 命令行界面之外工作:

  • 直接在系统终端(bash、PowerShell)中,
  • 或从某个脚本运行

您可以使用传统的系统重定向和管道机制。

sqlite3 database "SELECT * FROM table;" >  somefile
sqlite3 database "SELECT * FROM table;" >> somefile
sqlite3 database "SELECT * FROM table;" | tee somefile
Run Code Online (Sandbox Code Playgroud)
  • 第一个示例使用 SQLite 输出创建一个新文件。
  • 第二个示例将输出附加到文件(如果存在)。
  • 在最后一个示例中,tee将标准输出复制到somefile(如>重定向)。但是,您将在终端中看到输出。请注意,这tee是一个 Unix/Linux 实用程序。

一个额外的

您可以使用命令生成 CSV 文件.mode

sqlite3 database ".mode csv" "SELECT * FROM table;" > somefile.csv
Run Code Online (Sandbox Code Playgroud)

或者带有标题(感谢@Mike Kelly)

sqlite3 database ".mode csv" ".headers on" "SELECT * FROM table;" > somefile.csv
Run Code Online (Sandbox Code Playgroud)

  • 谢谢..另一个获取 CSV 输出标题的选项: sqlite3 db.sqlite ".mode csv" ".headers on" "select * from ...;" > 一些文件.csv (2认同)