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

如何将curl返回的垂直格式输出转换为CSV可用的水平格式

可行性结论

该格式转换需求完全可实现,以下分别提供Shell(Linux/macOS环境)、Windows Batch环境下的落地实现命令,处理结果可直接保存为标准CSV文件使用。

Shell 实现(Linux/macOS 通用)

无需安装额外工具,借助系统自带的awk即可完成处理,执行以下命令即可生成符合要求的CSV文件:

# 写入CSV表头
echo "name, PhoneNumber" > result.csv
# 逐行解析原始内容,每两行拼接为一条完整记录
awk -F '"' '
NR%2 == 1 {tmp_name = $4}
NR%2 == 0 {print tmp_name", "$4 >> "result.csv"}
' output.txt

命令逻辑说明:

  • 以双引号作为分隔符拆分每行内容,目标字段值固定在拆分后的第4个片段
  • 奇数行暂存读取到的name值,偶数行读取到电话号码后,和暂存的name拼接为完整的CSV行写入结果
  • 最终生成的result.csv可直接用Excel、Numbers等表格工具打开

如果不需要生成文件,只想在终端直接预览转换结果,可执行单行命令:

awk 'BEGIN{print "name, PhoneNumber"}{gsub(/[",]/,""); if(NR%2==1)n=$3; else print n", "$5}' output.txt

Windows Batch 实现

将以下代码保存为convert.bat,和存好原始内容的output.txt放在同一文件夹,双击运行即可自动生成result.csv:

@echo off
chcp 65001 >nul
:: 写入CSV表头
echo name, PhoneNumber> result.csv
setlocal enabledelayedexpansion
set flag=0
for /f "tokens=2 delims=:" %%i in (output.txt) do (
    set "v=%%i"
    :: 清理值里的引号、逗号、多余空格
    set "v=!v:"=!"
    set "v=!v:,=!"
    set "v=!v: =!"
    if !flag! equ 0 (
        set "curname=!v!"
        set flag=1
    ) else (
        echo !curname!, !v!>> result.csv
        set flag=0
    )
)
endlocal

脚本逻辑说明:

  • 首先切换控制台编码为UTF-8,避免特殊字符乱码
  • 逐行读取原始内容,自动清理无关的格式符号
  • 用标记位区分当前读取的是姓名字段还是电话号码字段,两个字段凑齐后拼接为一行写入结果文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 18:15:58