14

我在 Ubuntu 上使用 sqlite3 命令行程序。

我想在屏幕上看到它的输出分页。

例如,我会这样开始:

 # sqlite3
 SQLite version 3.6.22
 Enter ".help" for instructions
 Enter SQL statements terminated with a ";"
 sqlite> _

然后,在 sqlite 提示符下,如果我键入.help

 sqlite> .help

我看到一个长长的帮助信息“页面”,它在屏幕上显示最后几行。

我不是一个快速阅读者,因此无法在几毫秒内阅读所有这些信息。

那么,如何确保一次只能看到一个屏幕?

在正常的命令行用语中,这可以通过管道传输到| less| more但是,这似乎在这个 sqlite 交互式 shell 中不起作用。

4

3 回答 3

8

它似乎没有内置的东西。但是,您可以使用Cntrl+PgUpCntrl+PgDn在终端中的不同页面上下移动(在 Ubuntu 中默认为 gnome-terminal,因此应该可以)。

此外,您可以从 shell 调用命令,例如:

$ echo .help | sqlite3 2>&1 | more

sqlite3 打印输出stderr,因此重定向2>&1。对于 SQL 命令,您可以使用:

$ sqlite3 my.db "select * from my_table;" | more

等等。

于 2012-10-23T06:43:54.830 回答
6

dbcli集合中,2018 年出现了与 sqlite 兼容的litecli。它可以使用$PAGER环境变量或~/.config/litecli/config. 由于 util 提供颜色支持,我将其设置为less -SniFXR( ? )。

另一种方法是让sqlite3写入输出文件/管道并less -f -S /tmp/sqlpipe在第二个终端窗口或tmux窗格中使用来读取它。启用

.shell mkfifo /tmp/sqlpipe
.output /tmp/sqlpipe

它看起来像这样

由于不必重复输入命令,~/.sqliterc可以在启动时使用 a 进行设置。进一步的格式化改进了输出,尽管最终litecli是一个更舒适的解决方案。

于 2019-03-09T00:19:03.520 回答
2

您可以改用 sqlitestudio,它将输出发送到带有滚动条的窗口。 https://sqlitestudio.pl/index.rvt

于 2017-10-31T14:36:12.110 回答