Postgresql 如何使用psql-F设置制表符分隔符

Postgresql 如何使用psql-F设置制表符分隔符,postgresql,Postgresql,我想使用psql-F将select查询转储到以制表符分隔的文本文件。但是,这不起作用: psql -Umyuser mydb -F '\t' --no-align -c "select * from mytable" -o /tmp/dumpfile.txt 这使分隔符成为文字\t。我怎样才能使用真正的标签呢?我想你只需要使用文字标签。如何工作取决于您的外壳。你看到这个了吗 在bashshell中,可以使用$'\t'执行此操作 使用问题中的示例: psql-Umyuser mydb-AF$'\

我想使用psql-F将select查询转储到以制表符分隔的文本文件。但是,这不起作用:

psql -Umyuser mydb -F '\t' --no-align -c "select * from mytable" -o /tmp/dumpfile.txt

这使分隔符成为文字\t。我怎样才能使用真正的标签呢?

我想你只需要使用文字标签。如何工作取决于您的外壳。你看到这个了吗

在bashshell中,可以使用
$'\t'
执行此操作

使用问题中的示例:

psql-Umyuser mydb-AF$'\t'-no align-c“从mytable中选择*”-o/tmp/dumpfile.txt
manbash

对形式为$'string'的单词进行特殊处理。单词扩展为字符串,并按照ANSI C标准的规定替换反斜杠转义字符。[…]扩展后的结果是单引号,就好像美元符号不存在一样


在Unix中,您还可以键入

ctrl-V tab
ctrl-V告诉终端不要解释下一个键


这也适用于回车(^M)和许多其他特殊键,如箭头键,以防有人在交互式shell中查找如何执行此操作:
\f'\t'

谢谢!那根线有用。我使用psql-Umyuser mydb-F$'\t'--no align-c“select*from mytable”-o/tmp/dumpfile.txt使它工作起来来自Jammie Forrest的注释非常有用。fbarber也许可以将其添加到回答中,我还必须添加
-A
,以强制未对齐的输出。在最近的psql版本中,这可能已成为一项要求。FWIW此处的输出将很好地粘贴到Google工作表中;-)