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

Unix系统下如何删除CSV文件列内部嵌入的多余换行符

Unix系统删除CSV字段内嵌入换行的解决方案

固定字段数场景通用方案(无需额外安装工具)

你给出的示例中每条有效CSV记录固定为6个字段,对应5个英文逗号分隔符,通过累计逗号计数判断记录是否读取完整,可完全规避之前按「数字+逗号」判断行首的逻辑缺陷:

awk -F, '{
    buffer = buffer $0
    count += NF - 1
    if (count == 5) {
        print buffer
        buffer = ""
        count = 0
    }
}' test.csv > test_new.csv

执行后输出的test_new.csv完全匹配你给出的期望结果。

如果你实际的CSV字段数不是6个,把代码里的count == 5改成你实际的「字段数-1」即可。

带引号包裹字段的复杂CSV场景

如果你的CSV存在双引号包裹的字段(字段内部包含逗号/特殊字符),推荐使用专门的CSV处理工具csvkit处理:

  1. 安装csvkit:
  • Debian/Ubuntu系:sudo apt install csvkit
  • CentOS/RHEL系:sudo yum install python3-csvkit
  • macOS:brew install csvkit
  1. 执行转换命令:
csvformat -M $'\n' test.csv > test_new.csv

工具会自动识别CSV字段边界,合并字段内部的嵌入换行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 05:30:05