使用Linux保存Presto的查询结果而无需引号

Har*_*l R 0 presto

我在Linux环境中使用presto Db。当我希望将查询结果保存到文件中时,将其周围带有引号保存。

可以说我跑步:

    presto-cli --schema default --catalog hive --execute "select distinct(cust)    from sales" > results.txt
Run Code Online (Sandbox Code Playgroud)

结果保存如下:

    "David B"
Run Code Online (Sandbox Code Playgroud)

稍后,我使用sed's / \“ // g'删除引号,但我想知道是否有解决方法。

Dav*_*ips 5

默认输出格式为CSV。您可以使用TSV(制表符分隔的值)在字段中没有引号:

presto --output-format TSV --execute "SELECT ..."
Run Code Online (Sandbox Code Playgroud)

如果要将制表符转换为逗号(或其他字符),则可以通过标准UNIX tr命令通过管道传递结果:

presto ... | tr '\t' ','
Run Code Online (Sandbox Code Playgroud)

请注意,TSV输出格式对字段使用C样式的转义,因此,如果您的数据具有制表符,换行符,反斜杠等,您将在输出中看到\n\\之类的内容。