You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DuckDB命令行:如何按行将json_content导出到对应file_name文件?

解决方案

因为DuckDB的分区写入无法直接将列值作为文件名,且会生成固定目录结构,所以可以通过以下两种方法实现需求:

方法一:生成动态SQL脚本批量执行

  1. 生成对应每行的COPY命令并导出到SQL脚本文件:
duckdb 你的数据库文件名.db -s "SELECT 'COPY (SELECT json_content FROM export WHERE id = ' || id || ') TO ''' || file_name || ''';' FROM export;" > export_scripts.sql
  1. 执行生成的脚本完成导出:
duckdb 你的数据库文件名.db < export_scripts.sql

方法二:用Shell命令循环处理

如果json_content不含特定分隔符(比如|),可以直接导出为CSV并通过awk写入文件:

duckdb 你的数据库文件名.db -s "COPY (SELECT file_name, json_content FROM export) TO STDOUT (FORMAT CSV, DELIMITER '|');" | awk -F'|' '{print $2 > $1}'

这种方式无需生成中间SQL脚本,直接通过管道完成每行内容到对应文件的写入。

注意:如果json_content中包含你指定的分隔符,需要更换一个不会出现在JSON里的分隔符,避免内容分割错误。

内容的提问来源于stack exchange,提问作者Sascha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 23:12:05