2012-04-25 49 views
21

我想使用psql -F将选择查询转储到制表符分隔的文本文件。然而,这不起作用:如何使用psql设置制表符分隔符-F

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

这使得分隔符文字\吨。我如何让它使用真正的标签呢?

回答

29

我认为你只需要使用一个文字标签。这是如何工作的取决于你的shell。你见过这个post

在bash shell中,你可以用$'\t'来做到这一点。

使用在你的问题的例子:

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

谢谢!该线程帮助。我得到它使用'psql -Umyuser mydb -F $'\ t'--no-align -c“select * from mytable”-o/tmp/dumpfile.txt' – 2012-04-25 12:58:26

+0

来自Jammie Forrest的评论非常有用。 fbarber也许可以将它添加到答案 – Dimitris 2013-03-11 14:09:38

+0

我不得不添加'-A'来强制未对齐的输出。这可能已成为更新的psql版本中的一个要求。 – dland 2017-11-28 13:09:53

3

在Unix中,你也可以键入

ctrl-V tab 

CTRL-V告诉终端不能解释下一个关键。

这也与回车(^ M)和许多其他特殊键就像箭头键

3

在情况下,如果有人找了如何做到这一点的交互shell: \f '\t'