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

Redirect the query output to a text file with sqlite on windows?

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

official sqlite web page 中有一个名为 Writing results to a file 的部分,但它并不像我尝试的那样工作:

.tables .output new_db_output.txt

都没有

.tables | .output new_db_output.txt

知道如何将输出输出到文件吗?

注意:我正在使用 sqlite3 & windows 7.

sqlite3命令行shell的点命令不能组合。

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

.output new_db_output.txt
.tables
.output

从 SQLite 命令行界面外部

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

  • 直接在系统终端(bash、PowerShell),
  • 或运行来自一些脚本

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

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

一个额外的

您可以使用命令 .mode.

生成 CSV 文件
sqlite3 database ".mode csv" "SELECT * FROM table;" > somefile.csv

或 headers(感谢@Mike Kelly)

sqlite3 database ".mode csv" ".headers on" "SELECT * FROM table;" > somefile.csv