sqlite3命令行 - 如何显示更少/更多输出

时间:2012-10-23 06:17:00

标签: command-line sqlite

我在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。

3 个答案:

答案 0 :(得分:7)

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

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

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

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

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

等等。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

dbcli集合中,与sqlite兼容的litecli于2018年问世。它可以使用$PAGER环境变量或~/.config/litecli/config中定义的寻呼机。由于该实用程序提供颜色支持,因此将其设置为less -SniFXR?)。

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

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

由于不必重复输入命令,可以在启动时使用~/.sqliterc来设置它们。 formatting进一步改善了输出,尽管最后litecli是一个更为舒适的解决方案。