如何从 CSV 文件中删除所有双引号实例?

如何从 CSV 文件中删除所有双引号实例?

我有一个巨大的(大约半 GiB,不可能使用通常的文本编辑器)CSV 文件,其中的字段用双引号括起来,"abc","def"但需要一个不带引号的文件(我确信这不会破坏文件的一致性 -其中的值内部永远不会使用逗号)。

如何删除所有引号(不在其位置引入空格)?

答案1

tr可以这样做:

tr -d \" < infile > outfile

您还可以使用sed

sed 's/"//g' < infile > outfile

答案2

另一个版本sed命令:

sed -i s/\"//g file.txt
  • sed s特雷姆编辑伊托尔

    • -i n-place(就地编辑文件)
    • ss替代命令
    • /replacement_from_reg_exp/replacement_to_text/陈述
    • \"引号前面有反斜杠 (replacement_from_reg_exp
    • 斜杠分隔符之间的空字符串 (替换为文本
    • g G全局(用于替换行中所有出现的情况)
  • file.txt文件名

答案3

如果您使用支持 CSV 的库读取数据,则无需删除双引号。本答案的其余部分展示了如何从通用 CSV 文件中删除不需要的双引号,以防您稍后依赖更简单的方法来解析数据。

磨坊主( mlr) 将能够读取 CSV 数据并仅使用它再次输出

mlr --csv cat file

(使用 with-I进行“就地”编辑。)

默认情况下,Miller 只会引用需要引用的字段,例如包含嵌入逗号、引号或换行符的字段。

以同样的方式,csvformatcsvkit同样,只有默认情况下才引用实际需要引用的字段:

csvformat file

csvformat实用程序无法进行“就地”编辑,因此您需要将输出重定向到新名称。

相关内容