使用 Linux 从 presto 保存不带引号的查询结果

Save query results from presto without quotes using Linux

我在 Linux 环境中使用 Presto Db。当我希望将我的查询结果保存到一个文件中时,它会在周围加上引号。

假设我 运行:

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

结果保存如下:

    "David B"

我稍后使用 sed 's/\"//g' 删除引号,但我想知道是否有办法解决这个问题。

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

presto --output-format TSV --execute "SELECT ..."

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

presto ... | tr '\t' ','

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