以下命令运行良好
$ psql -c "copy (select * from foo limit 3) to stdout csv header"
# output
column1,column2
val1,val2
val3,val4
val5,val6
但是,以下不是:
$ psql -c "copy (select * from foo limit 3) to program 'gzip -f --stdout' csv header"
# output
COPY 3
为什么我有COPY 3
这个命令的输出?我希望输出将是压缩的 CSV 字符串,通过gzip
.
下面的命令有效,例如:
$ psql -c "copy (select * from foo limit 3) to stdout csv header" | gzip -f -c
# output (this garbage is just the compressed string and is as expected)
߉T`M�A �0 ᆬ}6�BL�I+�^E�gv�ijAp���qH�1����� FfВ�,Д���}������+��
如何制作一个直接将结果通过管道传输到gzip
并将压缩字符串发送到的 SQL 命令STDOUT
?