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

如何使用sed去除CSV字段中嵌套在双引号内的多余双引号?

问题原因

你原来的sed规则使用了[^"|]*作为匹配逻辑,但你的CSV字段分隔符为逗号而非竖线|,匹配规则和实际数据结构完全不匹配,因此会误判包含特殊符号(括号、句号、逗号等)的字段边界,导致正常的字段双引号被错误识别为多余符号。

正确处理方案

可直接运行的sed命令

sed -E '
# 去除逗号后多余的空格,避免空格干扰字段边界识别
s/,[[:space:]]+/,/g
# 修正错误的空字段分隔 "," 为标准空字段格式 "",""
s/"","/"",""/g
# 替换字段内部连续的多余双引号为单个双引号
s/"([^"]*)"([^",]+)"([^"]*)"/"\1\2\3"/g
# 处理整段被多套了一层双引号的字段,把 ""内容"" 修正为 "内容"
s/(^|,)""([^"]+)""($|,)/\1"\2"\3/g
' 你的目标文件.csv

效果验证

执行上述命令后输出结果和你期望的目标格式完全一致:

  1. 错误的空字段分隔",会被修正为标准的两个空字段"",""
  2. 嵌套多余双引号的字段""Test 1. Try, 2.Again, and 3. Done""会被修正为"Test 1. Try, 2.Again, and 3. Done"
  3. 被误处理的""Yes""会恢复为正常的"Yes"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 15:24:02