如何用.mode等点命令设置DuckDb CLI输出为无换行无截断单行格式
DuckDB CLI 实现单行无截断输出的方法
一、DuckDB CLI内置命令设置
- 使用无格式分隔模式:切换到
.mode csv或.mode tsv,每条记录会以单行形式输出,列间用逗号/制表符分隔,不会自动换行或截断内容,适合需要纯文本单行输出的场景。 - 调整宽度限制配合表格模式:使用
.mode table或.mode markdown,同时执行.maxwidth 0(0代表不限制列宽),这样内容不会被截断,但行是否自动换行仍取决于终端的宽度支持。 - 注意:
.singleline命令目前未在DuckDB正式版本中提供,请勿使用。
二、Bash终端下的Pager技巧(类似Postgres的PAGER='less -S')
DuckDB支持通过PAGER环境变量配置分页工具,实现长行截断滚动查看:
- 临时生效:启动DuckDB前设置环境变量
PAGER='less -S' duckdb
- 永久生效:在bash配置文件(如
~/.bashrc或~/.zshrc)中添加
export PAGER='less -S'
- 永久写入DuckDB配置:在
~/.duckdb/duckdb.conf中添加配置项
pager = 'less -S'
less -S会将过长的行截断显示,通过左右方向键可滚动查看完整内容;若希望退出less时自动清屏,可改用less -SX。
三、终端环境补充说明
- Windows Terminal:暂不支持超出可视范围的虚拟行缓冲区,过长行仍会自动换行,暂无完美解决办法。
- VS Code终端:可通过
ALT+z快捷键切换“展开至最长显示行”,也可设置Terminal: Set Fixed Dimensions扩大可显示宽度,配合上述设置优化长行显示效果。
内容的提问来源于stack exchange,提问作者mdisibio
相关产品推荐
相关产品推荐

