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

Unix下替换CSV第三字段内双引号为~(保留其他双引号)

处理CSV文件指定字段的内嵌双引号替换需求

需求说明:

  • 在Unix环境下处理双引号包裹的CSV文件
  • 仅将第三个HTML格式字段内的转义双引号(\")替换为~
  • 该字段包含数据逗号,不得修改其他位置的双引号
  • 此前尝试awk命令未达到预期效果

输入文件示例

F1,F2,F3
"11111","ABABDBDA","<div style=\"text-aaa: justify;\"> Il MMM delinea l&rsquo;evvv dei ccccc e dei ruorrrrli, degli organi sss, alaaaala "
"22222","PPPPPPPP","<p style=\"text-align: justify;\"> <span style=\"color:#ff0000;\"><strong>Disponibile dal 25/03</strong></span></p> <div style=\"text-align: justify;\"> Il manuale delinea l&rsquo;evoluzione dei , ;\"> </div>"
"333333","QQQQQQQ","<p style=\"text-align: justify;\"> Il libro analizza i singoli cicli gestionali, partendo dalle rilevazioni, contabili per giungere poi alla destinazione di "

预期输出示例

F1,F2,F3
"11111","ABABDBDA","<div style=~text-aaa: justify;> Il MMM delinea l&rsquo;evvv dei ccccc e dei ruorrrrli, degli organi sss, alaaaala" 
"22222","PPPPPPPP","<p style=~text-align: justify;~> <span style=~color:#ff0000;~><strong>Disponibile dal 25/03</strong></span></p> <div style=~text-align: justify;~> Il manual"
"333333","QQQQQQQ","<p style=~text-align: justify;~> Il libro analizza i singoli cicli gestionali, partendo dalle rilevazioni, contabili per giungere poi alla destinazione"

解决方案(awk实现)

利用awk的逐字符遍历和状态跟踪,精准定位第三个字段并替换目标字符:

awk -v FS="" '
NR == 1 {print; next}
{
    quote_cnt = 0
    idx = 1
    while (idx <= NF) {
        if ($idx == "\"") {
            quote_cnt++
        }
        # 处于第三个字段内部(已进入第三个字段,未遇到结束引号)
        if (quote_cnt == 5) {
            # 匹配转义双引号组合:\ 后跟 "
            if ($idx == "\\" && $(idx+1) == "\"") {
                printf "~"
                idx += 2
                continue
            }
        }
        printf "%s", $idx
        idx++
    }
    printf "\n"
}
' input.csv > output.csv

核心逻辑说明

  1. 字段定位:通过统计双引号数量区分字段——前两个字段各包含一对双引号,第三个字段从第5个双引号开始,到第6个双引号结束
  2. 逐字符处理:设置FS=""将每行拆分为单个字符,避免字段内逗号干扰分割逻辑
  3. 精准替换:仅在第三个字段范围内,将转义双引号的字符组合\"替换为~,其他字符和双引号保持不变
  4. 表头跳过:第一行表头直接输出,不做任何处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 04:05:19